我有一个要传递给sed的文件列表:
echo abc > test0; echo cab > test1; echo xyz > test2
我需要在sed的输出中有一个小组捕获和文件名
$ cat test0 test1 test2 | sed -E 's/(\b[abc]+\b)/found \1 in file \?/'
found abc in file ?
found cab in file ?
xyz
将问号替换为相应的文件名。甚至可能吗?如果是,如何:D
提前致谢
编辑:我知道我可以通过简单的
来实现grep -E '(\b[abc]+\b)' test0 test1 test2
但我真的需要自己的输出来生成另一种语言的代码
答案 0 :(得分:2)
我会使用一个循环。您可以将此与bash一起使用:
for i in test0 test1 test2; do
sed -E "s/(\b[abc]+\b)/found \1 in file $i/" "$i"
done