
データ ファイルから文字列パターン内のテキストを検索し、シェルまたは 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"'