首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >合并两个文件跳过1文件的最后一行与awk

合并两个文件跳过1文件的最后一行与awk
EN

Unix & Linux用户
提问于 2020-08-25 16:34:11
回答 2查看 204关注 0票数 1

我正在尝试连接两个文件,删除重复的头行,只取最后一行

例如:

File1.txt

代码语言:javascript
运行
复制
head1
data1
data2
tail8

File2.txt

代码语言:javascript
运行
复制
head1
data3
data4
tail9

在file3.txt中所期望的结果:

代码语言:javascript
运行
复制
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

但是结果是尾部在文件的中间,而不是最后

代码语言:javascript
运行
复制
head1
data1
data2
tail8
data3
data4

有什么想法吗?提前谢谢你

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-08-25 17:49:13

代码语言:javascript
运行
复制
$ awk 'NR==FNR{ if (NR>1) print prev; prev=$0; next } FNR>1' file1 file2
head1
data1
data2
data3
data4
tail9
票数 0
EN

Unix & Linux用户

发布于 2020-08-25 16:54:50

为什么是沃克?这样做是可行的:

代码语言:javascript
运行
复制
{ sed -e '$d' file1.txt; sed -e '1d' file2.txt; } > file3.txt
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/606275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档