这是Multiple line, repeated occurence matching
的延续我有很多test * .txt文件,其内容与前一个帖子一样。
test1.txt的
blah blah..
blah blah..
blah abc blah1
blah blah..
blah blah..
blah abc blah2
blah blah..
blah efg1 blah blah
blah efg2 blah blah
blah blah..
blah blah..
blah abc blah3
blah blah..
blah blah..
blah abc blah4
blah blah..
blah blah blah
blah abc blah5
blah blah..
blah blah..
blah abc blah6
blah blah..
blah efg3 blah blah
blah efg4 blah blah
blah abc blah7
blah blah..
blah blah..
blah abc blah8
blah blah..
现在我想修改输出以对所有文件运行sed命令,但是还要使用sed命令的输出显示文件名和行号(如果可能)...
我在命令
下面运行ls test*.txt | xargs sed -n -f findMatch.txt
findMatch.txt内容
/abc/h;/efg/!b;x;/abc/p;z;x
输出
blah abc blah2
blah abc blah6
blah abc blah2
blah abc blah6
blah abc blah2
blah abc blah6
我需要更详细的输出,如下所示
test1.txt ln6 blah abc blah2
test1.txt ln23 blah abc blah6
test2.txt ln6 blah abc blah2
test2.txt ln23 blah abc blah6
test3.txt ln6 blah abc blah2
test3.txt ln23 blah abc blah6
答案 0 :(得分:1)
grep命令用于将特定模式搜索到所有文件。
grep -f patten_file -Rn *.txt
-R递归
-n行号
Patten_file
hai
hello
this
<强>输出:强>
1.txt:1:hai
1.txt:2:hello
2.txt:1:hai
2.txt:2:this