我想从数据文件中查找字符串 Pattern 内的文本,并使用 shell 或 AppleScript 将它们提取到文本列表中。
XML 内部的示例:
node file="source_files/ (var1) .mp3"
HMTL 中的另一个例子:
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"'