查找并提取字符串中的文本

查找并提取字符串中的文本

我想从数据文件中查找字符串 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"'

相关内容