Suchen und Extrahieren von Text in Zeichenfolgen

Suchen und Extrahieren von Text in Zeichenfolgen

Ich möchte Text in einem Zeichenfolgenmuster aus einer Datendatei suchen und ihn mithilfe von Shell oder AppleScript in eine Textliste extrahieren.

Ein Beispiel innerhalb von XML:

node file="source_files/ (var1) .mp3"

Ein weiteres Beispiel innerhalb von HTML:

src="http:// (example.com) /dir/ (var2) .txt"

Gewünschte Ausgabe:

1.1 source_files/example1.mp3
1.2 source_files/blah.blah

2.1 http://example.com/dir/example2.txt
2.2 http://example.com/dir/blah.blah

Meine Frage ist nun: Wie kann ich in einer Textdatei die Reihe aller Zeichenfolgen suchen, finden und extrahieren, die vor, nach oder vor beiden das spezifische Zeichenfolgenmuster aufweisen?

Antwort1

Wie wäre es mit dem folgenden grepBefehl:

grep -Po '(?<==")[^"]+(?=")'

Dadurch werden Zeichenfolgen in doppelten Anführungszeichen extrahiert, die nach Gleichheitszeichen erscheinen. Hier ist es in Aktion:

user@host:~$ echo 'node file="source_files/example1.mp3"' \
| grep -Po '(?<==")[^"]+(?=")'

source_files/example1.mp3

user@host:~$ echo 'src="http://example2.com/dir/example2.txt"' \
| grep -Po '(?<==")[^"]+(?=")'

http://example2.com/dir/example2.txt

Antwort2

grep -F 'node file="source_files/example1.mp3"'

grep -F 'src="http://example2.com/dir/example2.txt"'

verwandte Informationen