Non riesco a trovare il mio input nella stringa usando grep


11

Ho una stringa separata da virgole in cui voglio trovare il mio input in quella riga:

echo US | grep "US,CA,CH,JP"

L'output è vuoto! Come dovrei usare grep per trovare il mio input in quella stringa?

Risposte:


18

Scambia gli argomenti dei comandi:

echo "US,CA,CH,JP" | grep US

In:

echo US | grep "US,CA,CH,JP"

stai cercando la stringa (modello) US,CA,CH,JPnella stringa di input US, che non corrisponde in modo previsto.


14

A meno che non ti aspettassi che le virgole si comportino come un'istruzione "o", nel qual caso devi solo cambiare le virgole in pipe e utilizzare l' -Eopzione per le espressioni regolari estese :

echo US | grep -E "US|CA|CH|JP"

Oppure modifica le virgole in caratteri di nuova riga:

echo US | grep "US
CA
CH
JP"

-1

io userei $echo US | grep -i "US|CA|JP|CH"

Invece di eco dare un elenco o qualcosa del genere, dove può effettivamente andare e cercare modelli, invece di cercarli negli "Stati Uniti"


Hai dimenticato -E.
reinierpost,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.