Ich habe eine durch Kommas getrennte Zeichenfolge, in der ich meine Eingabe in dieser Zeile finden möchte:
echo US | grep "US,CA,CH,JP"
Die Ausgabe ist leer! Wie soll ich grep verwenden, um meine Eingabe in dieser Zeichenfolge zu finden?
Tauschen Sie die Argumente der Befehle aus:
echo "US,CA,CH,JP" | grep US
Im:
echo US | grep "US,CA,CH,JP"
Sie suchen nach der Zeichenfolge (Muster) US,CA,CH,JP
in der Eingabezeichenfolge US
, die nicht erwartungsgemäß übereinstimmt.
Sofern Sie nicht erwartet haben, dass die Kommas wie eine "oder" -Anweisung wirken, müssen Sie in diesem Fall nur die Kommas in Pipes ändern und die -E
Option für erweiterte reguläre Ausdrücke verwenden:
echo US | grep -E "US|CA|CH|JP"
Oder ändern Sie die Kommas in Zeilenumbrüche:
echo US | grep "US
CA
CH
JP"
ich würde ... benutzen $echo US | grep -i "US|CA|JP|CH"
Anstelle von Öko geben Sie ihm eine Liste oder etwas, wo es tatsächlich nach Mustern suchen kann, anstatt sie in "USA" zu suchen.
-E
.