文字列内のテキストを検索して抽出する

文字列内のテキストを検索して抽出する

データ ファイルから文字列パターン内のテキストを検索し、シェルまたは AppleScript を使用してテキスト リストに抽出したいと考えています。

XML 内の例:

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

HTML 内の別の例:

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

望ましい出力:

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

私の質問は、テキスト ファイル内で、特定の文字パターンの前、後、またはその両方を持つ一連の文字列をすべて検索、検出、抽出するにはどうすればよいでしょうか。

答え1

次のgrepコマンドを使用してみてはいかがでしょうか:

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

これは、等号の後に現れる二重引用符で囲まれた文字列を抽出します。実際に動作している例を以下に示します。

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

答え2

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

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

関連情報