Awk
用awk合併兩個文件跳過1個文件的最後一行
我正在嘗試加入兩個文件,刪除重複的頭行並且只取最後一行
例如:
文件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
但結果是 file4.txt 中間有尾巴,而不是結尾
head1 data1 data2 tail8 data3 data4
任何想法?先感謝您
$ awk 'NR==FNR{ if (NR>1) print prev; prev=$0; next } FNR>1' file1 file2 head1 data1 data2 data3 data4 tail9
為什麼是awk?這會起作用:
{ sed -e '$d' file1.txt; sed -e '1d' file2.txt; } > file3.txt