合并两个文件中的替代行

合并两个文件中的替代行

文件1:

.tid.setnr := 1123 
.tid.setnr := 3345 
.tid.setnr := 5431
.tid.setnr := 89323

文件2:

.tid.info := 12
.tid.info := 3
.tid.info := 44
.tid.info := 60

输出文件:

.tid.info := 12
.tid.setnr := 1123
.tid.info := 3
.tid.setnr := 3345
.tid.info := 44
.tid.setnr := 5431
.tid.info := 60
.tid.setnr := 89323

答案1

使用paste:

paste -d \\n file2 file1

答案2

另一个 awk 解决方案:

awk '{print; getline < "file1"; print}' file2

答案3

paste解决方案是最便携、最高效的。我只是提到这个替代方案,以防您在两个文件的行数不同的情况下更喜欢它的行为:

使用 GNU sed

sed Rfile1 file2

如果file1的行数少于file2,则当file1耗尽时,sed将不会为其输出任何内容(与 的空行相反paste)。

如果file1行数多于file2,那么这些多余的行将被丢弃(而不是为file2with打印空行paste)。

$ paste a b
1       a
2       b
3
4
$ paste -d \\n a b
1
a
2
b
3

4

$ sed Rb a
1
a
2
b
3
4
$ sed Ra b
a
1
b
2

答案4

下面给出了最简单的解决方案。

cat file1 >> file2

或者

cat file2 >> file1

相关内容