Порядок сортировки вывода при использовании 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

Связанный контент