Extrahieren Sie ein Wort nach einem bestimmten Wort in der gleichen Zeile
Wie kann ich Auszug ein Wort nach einem bestimmten Wort in Linux (csh)?
Genauer gesagt, ich habe eine Datei die eine einzige Zeile, die wie folgt aussieht:
[some useless data] --pe_cnt 100 --rd_cnt 1000 [some more data]
Möchte ich extrahieren Sie die Anzahl 100
das ist nach der --pe_cnt
Wort.
Kann ich sed benutzen, wie das funktioniert nur, wenn Sie wollen, zu extrahieren, eine ganze Zeile. Vielleicht kann ich awk?
Auch, ich habe mehrere Dateien, die unterschiedliche Werte haben, anstelle der 100
so brauche ich etwas, dass Extrakte der Wert aber hängt nicht von dem Wert.
"awk" ist eine Möglichkeit. Zum Beispiel
echo 5 4 | awk '{ print $2 }'
sollte die Anzeige "4".InformationsquelleAutor Rahul | 2013-06-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit
awk
:Grundsätzlich Schleife über jedes Wort der Zeile. Wenn Sie die ersten, die Sie suchen, greifen Sie das nächste Wort ein und drucken Sie es.
Mit
grep
:Ja sorry habe nicht testen Sie es. Danke!!! 🙂
N. B.
grep
auf Mac OSX 10.8 nicht-P
.JS웃: vielen Dank für die schnelle Antwort. Der erste Befehl funktionierte perfekt! Der zweite Befehl gab keine Ausgabe obwohl.
Sorry, ich hatte übersehen, ein Raum, in dem Blick hinter die korrigiert wurde, von ctn. Jetzt sollte es funktionieren.
InformationsquelleAutor jaypal singh
Können Sie sed. Nur eine Gruppe machen wollen Sie suchen möchten, und ersetzen Sie die gesamte Zeile mit der Gruppe:
Es funktioniert für die Zeichenfolge, die Sie zur Verfügung gestellt.
Es wurde ein Fehler in das Muster zuvor, aber es ist nun behoben.
Ja, es funktioniert. Danke!!!
Du bist herzlich willkommen.
InformationsquelleAutor ctn
Wenn es ein single-Leerzeichen zwischen
--pe_cnt
und100
Sie können in der Lage sein zu verwenden lookahead-und lookbehind-assertions--rd_cnt
es nicht unbedingt egal, was die folgenden Optionen sindOk. Danke für den Tipp. Ich bin ein Neuling auf Linux, so dass diese Tipps helfen, eine Menge.
InformationsquelleAutor iruvar