首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何合并两个文件作为替代行?

问如何合并两个文件作为替代行?
EN

Ask Ubuntu用户
提问于 2018-11-25 06:56:43
回答 2查看 1.4K关注 0票数 3

我知道如何合并两个表,以便在新文件中打印替代行,但我希望将file1.txt中的每两行合并一次,并将file2.txt中的一行合并。例如:

file1.txt是

代码语言:javascript
复制
A a aa
B b bb 
C c cc
D d dd

而file2.txt是

代码语言:javascript
复制
E e ee 
F f ff

我想要

代码语言:javascript
复制
A a aa
B b bb 
E e ee 
C c cc
D d dd
F f ff
EN

回答 2

Ask Ubuntu用户

发布于 2018-11-25 10:03:00

使用GNU,您可以在第一行(“两个跳过两个”)之后从第二个文件中读取和插入一行:

代码语言:javascript
复制
$ sed '2~2R file2.txt' file1.txt
A a aa
B b bb 
E e ee 
C c cc
D d dd
F f ff

在awk中稍微长一些的实现相同:

代码语言:javascript
复制
awk '{print} !(NR%2) {if ((getline < "file2.txt") > -1) print}' file1.txt
票数 7
EN

Ask Ubuntu用户

发布于 2018-11-25 08:15:51

您可以为此使用paste命令:

代码语言:javascript
复制
% paste -d '\n' - - file2.txt < file1.txt
A a aa
B b bb 
E e ee 
C c cc
D d dd
F f ff

默认情况下,paste从每个输入文件中提取行,然后将它们合并到由制表符分隔的一行中。使用-d '\n',我们告诉它使用换行符作为分隔符。-是标准输入,从file1.txt (< file1.txt)重定向。因此,paste从标准输入取一行,从标准输入取另一行(实际上是从file1.txt取两行,然后从file2.txt输出一行,然后用换行符隔开它们。

票数 6
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1095842

复制
相关文章

相似问题

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