두 파일을 연결하고 중복된 헤더 줄을 제거하고 마지막 줄만 가져오려고 합니다.
예를 들어:
파일 1.txt
head1
data1
data2
tail8
파일 2.txt
head1
data3
data4
tail9
file3.txt에서 원하는 결과:
head1
data1
data2
data3
data4
tail8 or rail9 doesn't matter
먼저 중복 헤더를 제거해 보았습니다.
awk '!seen[$0]++' file1.txt file2.txt > file3.txt
두 번째 명령은 다음과 같습니다.
awk 'NR > 1 { print prev } { prev = $0 }' file3.txt > file4.txt
하지만 결과적으로 tail은 file4.txt의 끝이 아닌 중간에 있습니다.
head1
data1
data2
tail8
data3
data4
어떤 아이디어가 있나요? 미리 감사드립니다
답변1
왜 이름이 awk인가요? 이것은 작동합니다:
{ sed -e '$d' file1.txt; sed -e '1d' file2.txt; } > file3.txt
답변2
$ awk 'NR==FNR{ if (NR>1) print prev; prev=$0; next } FNR>1' file1 file2
head1
data1
data2
data3
data4
tail9