Meine Eingabe im String kann mit grep nicht gefunden werden

Meine Eingabe im String kann mit grep nicht gefunden werden

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,JPin 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 -EOption 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.

verwandte Informationen