Sed는 모든 txt 파일의 6번째 줄에서 시작하며 모든 결과를 단일 파일로 출력할 수 있습니다.

Sed는 모든 txt 파일의 6번째 줄에서 시작하며 모든 결과를 단일 파일로 출력할 수 있습니다.

6행부터 끝까지 모든 *.txt 파일을 sed해야 합니다. 모든 결과는 결과 앞에 각 파일 이름이 포함된 새로운 단일 파일에 있어야 합니다.

예: 다른 txt 파일의 경우 결과는 세 번째 줄부터 끝까지 단일 파일이어야 합니다.

file 1
3
4
5
file 2
3
4
5
file 3
3
4
5

답변1

GNU 사용 sed:

sed -s '1F;6,$!d' -- *.txt > output

이식 가능하게는 다음을 사용할 수 있습니다 awk.

awk 'FNR == 1 {print FILENAME}; FNR>=6' ./*.txt > output

(두 경우 모두 숨김 파일은 제외됩니다.)

빈 파일은 참조되지 않지만 6줄 미만의 파일은 참조됩니다. 이 말을 듣고 싶지 않다면 다음과 같이 하세요.

sed -s '6F;6,$!d' -- *.txt > output
awk 'FNR == 6 {print FILENAME}; FNR>=6' ./*.txt > output

또는 모든 파일을 보려면:

for f in *.txt; do
  printf '%s\n' "$f"
  tail -n +6 < "$f"
done > output

GNU를 사용하면 tail다음을 수행할 수도 있습니다.

$ tail -vn +6 -- *.txt
==> a.txt <==
6
7
8
9
10

==> b.txt <==
6
7
8
9
10

관련 정보