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

관련 정보