Ich sehe viele Beispiele und man-Seiten, wie man Dinge wie Suchen und Ersetzen mit sed, awk oder gawk macht.Wie sed, awk oder gawk verwenden, um nur das zu drucken, was passt?
Aber in meinem Fall habe ich einen regulären Ausdruck, den ich gegen eine Textdatei ausführen möchte, um einen bestimmten Wert zu extrahieren. Ich möchte nicht suchen und ersetzen. Dies wird von bash aufgerufen. Nehmen wir ein Beispiel verwenden:
Beispiel für reguläre Ausdrücke:
.*abc([0-9]+)xyz.*
Beispiel Eingabedatei:
a
b
c
abc12345xyz
a
b
c
So einfach wie das klingt, ich kann nicht herausfinden, wie sed anrufen/awk/gawk richtig . Was ich zu tun gehofft, aus meinem Bash-Skript ist haben:
myvalue=$(sed <...something...> input.txt)
Dinge, die ich versucht habe, sind:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing
Wow ... Leute wählten diese Frage nach -1? Ist das wirklich unpassend für eine Frage? –
Es scheint vollkommen angemessen, Regex und leistungsfähige Befehlszeilenprogramme wie sed/awk oder irgendein Editor wie vi, emacs oder teco zu verwenden, kann mehr wie Programmierung sein, als nur einige ol Anwendung zu verwenden. IMO das gehört auf SO mehr als SU. – Dereleased
Vielleicht wurde es abgelehnt, weil es in seiner ursprünglichen Form einige Anforderungen nicht klar definiert hat. Es tut es immer noch nicht, es sei denn, Sie haben die Kommentare des OP zu den Antworten gelesen (einschließlich der, die ich gelöscht habe, als die Dinge in Birnenform verliefen). – pavium