Sono un principiante nell'uso dei comandi di programmazione.
Perché {2} non è funzionale dopo ([^ \ t] * \ t) nel terminale macOS?
C'è qualche sito Web che fornisce Perl RegEx che funziona in mac? Grazie!
RegExPlanet offre una Pagina di prova delle espressioni regolari per Perl . Questa pagina funziona con Safari su macOS 10.12.
Potresti scoprire che grep
incluso con macOS non include tutte le funzionalità che desideri. In tal caso, prova installando grep
da Homebrew o MacPorts.
bsd grep
non usa espressioni regolari perl. Leggi man grep
e nota l'opzione -p
. Di nuovo, man 7 re_format
spiega come la regex funziona in macOS con strumenti come grep
e sed
.
Nella tua espressione regolare il carattere \t
non viene interpretato come carattere di tabulazione. Quindi dovrai digitare il carattere letterale della tabulazione (control + v, tab) invece -
grep -E '^([^ ]* ){2}mypattern ' FILE
oppure puoi usare la citazione di ansi-c (le parole della stringa $ 'stringa' sono trattate in modo speciale. La parola si espande in stringa, sostituendo caratteri backslash-escape come specificato dallo standard ANSI C.) -
grep -E $'^([^\t]*\t){2}mypattern\t' FILE
Puoi anche utilizzare perl
direttamente -
perl -ne 'print if /^([^\t]*\t){2}mypattern\t/' FILE
Leggi altre domande sui tag perl