Ich habe eine durch Kommas getrennte Zeichenfolge an der Stelle, an der ich meine Eingabe 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?
Antwort1
Tauschen Sie die Argumente der Befehle aus:
echo "US,CA,CH,JP" | grep US
In:
echo US | grep "US,CA,CH,JP"
Sie suchen nach der Zeichenfolge (dem Muster) US,CA,CH,JP
in der Eingabezeichenfolge US
, die nicht wie erwartet übereinstimmt.
Antwort2
Sofern Sie nicht erwartet haben, dass die Kommas wie eine "oder"-Anweisung wirken, müssen Sie die Kommas nur in Pipes ändern und die -E
Option fürErweitertReguläre Ausdrücke:
echo US | grep -E "US|CA|CH|JP"
Oder ändern Sie die Kommas in Zeilenumbruchzeichen:
echo US | grep "US
CA
CH
JP"
Antwort3
ich würde ... benutzen$echo US | grep -i "US|CA|JP|CH"
Geben Sie ihm statt „öko“ eine Liste oder etwas Ähnliches, wo er tatsächlich nach Mustern suchen kann, anstatt in „US“ danach zu suchen.