使用 awk 合并两个文件跳过 1 个文件的最后一行

使用 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

但结果是 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

相关内容