Ich kann meine Eingabe in der Zeichenfolge mit grep nicht finden


11

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?

Antworten:


18

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,JPin der Eingabezeichenfolge US, die nicht erwartungsgemäß übereinstimmt.


14

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 -EOption 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"

-1

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.


Du hast es vergessen -E.
Reinierpost
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.