一行中多次使用相同模式的正则表达式

时间:2010-12-03 00:05:55

标签: regex sed

我正在寻找的模式是:

TXT.*\.txt

该模式可以在任何给定行中多次出现。我想要提取模式的每个实例,或者使用sed(或任何东西,真的)删除每个实例周围的文本。

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以将Perl用作:

$ cat file
foo TXT1.txt bar TXT2.txt baz
foo TXT3.txt bar TXT4.txt baz

$ perl -ne 'print "$1\n" while(/(TXT.*?\.txt)/g)' file
TXT1.txt
TXT2.txt
TXT3.txt
TXT4.txt
$ 

答案 1 :(得分:2)

您可以将grep用作:

grep -o 'TXT[^.]*\.txt' file