Wenn ich eine Datei habe, die so aussieht:
example.png example.jpg example2.jpg example2.png example.swf
example2.swf example3.jpg example4.jpg example3.png example3.swf
und ich möchte zum Beispiel die Wörter extrahieren, die swf enthalten, die Ausgabe würde ungefähr so aussehen
example.swf
example2.swf
example3.swf
Ich habe versucht grep -o "swf[^[:space:]]*"
, was nur ein paar druckt swf
, und dann habe ich versucht grep -o '[^ ]*a\.swf[^ ]*'
, was nur sehr wenige Zeilen mit "swf" ausgibt. Weiß jemand was zu tun ist?
command-line
text-processing
Anzeigename
quelle
quelle
grep -o '[^[:space:]]*swf'
null oder mehr Nicht-Leerzeichen vor demswf
Teilstring?Antworten:
Mit GNU grep:
Ausgabe:
Siehe: Die FAQ zu regulären Ausdrücken für Stapelüberlauf
quelle
Du kannst tun:
[^ ]*
Entspricht null oder mehr Nicht-Leerzeichen\.swf
passt wörtlich.swf
Beispiel:
quelle
Erster Schritt
Ersetzen Sie Leerzeichen durch Linienenden mit
sed
Zweiter Schritt
Filtern Sie die Ausgabe mit
grep
Beispiel
sed -e s/\ /\\n/g file | grep .swf
quelle