![使用 awk 合并两个文件跳过 1 个文件的最后一行](https://linux22.com/image/179113/%E4%BD%BF%E7%94%A8%20awk%20%E5%90%88%E5%B9%B6%E4%B8%A4%E4%B8%AA%E6%96%87%E4%BB%B6%E8%B7%B3%E8%BF%87%201%20%E4%B8%AA%E6%96%87%E4%BB%B6%E7%9A%84%E6%9C%80%E5%90%8E%E4%B8%80%E8%A1%8C.png)
我正在尝试连接两个文件,删除重复的头行并只取最后一行
例如:
文件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