使用 sed 并在文件夹中迭代时对输出进行排序

使用 sed 并在文件夹中迭代时对输出进行排序

我正在使用以下 sed 命令在文件夹中每个文件的模式之间查找字符串,文件名为 01.txt、02.txt 等:

sed -n '/PAT1/,/PAT2/{/PAT1/!{/PAT2/!p}}' * >> file

但输出不是按目录中文件的相同顺序排序的,而是按其他顺序排序的。我确实尝试过通过管道进行排序,但顺序分散在所有匹配项/所有文件中,这不是我想要的。我希望输出以相同的 01.txt、02.txt 顺序附加。我见过 grep 做同样的事情,找到匹配项并从一个文件跳转到另一个文件。我更喜欢使用 sed,但 grep 也是一个选择。谢谢。

答案1

不得不求助于脚本,仍然只有一行:

for f in file*.txt; do sed -n 'PAT1/,/PAT2/{/PAT1!{/PAT2};}' $f >> outputfile; done

相关内容