bash sucht in jeder Dateizeile nach einer Zeichenfolge

8

Ich versuche eine scheinbar einfache Aufgabe: Verwenden Sie bash, um eine Datei nach Zeichenfolgen zu durchsuchen, und geben Sie diese, falls vorhanden, in einer anderen Datei aus. Es könnte Jetlag sein, aber das sollte funktionieren:

%Vor%

Ich habe das auch aus Gründen der Vollständigkeit versucht:

%Vor%

gibt alles aus, unabhängig davon, ob die Zeile CNTRY enthält oder nicht, und ich kopiere / klebe aus scheinbar zuverlässigen Quellen, also gibt es anscheinend etwas Einfaches an der Bash-Ness, das ich vermisse?

    
Joshua Noble 17.04.2011, 19:33
quelle

2 Antworten

23

Benutze keine bash, benutze grep.

%Vor%     
Ignacio Vazquez-Abrams 17.04.2011, 19:35
quelle
2

Obwohl ich vorschlagen würde, grep einfach zu verwenden, ist die Frage offen, warum Sie nicht angehen. Hier eine selbstreferentielle Modifikation Ihres zweiten Ansatzes - mit dem Keyword 'bash', um sich selbst anzupassen:

%Vor%

Der Schlüsselpunkt ist while read -r line ... < FILE . Ihr Befehl mit cat beinhaltet String Splitting, also wird jedes einzelne Wort in der Schleife verarbeitet, nicht jede Zeile.

Das gleiche Problem in Beispiel 1.

    
user unknown 17.04.2011 20:38
quelle

Tags und Links