使用 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

相關內容