我有一个包含4列的主文件,例如:
a b c d
e f g h
i j k l
在另一个文件中,我有一行文本与主文件中的相应行相对应,我想将其作为新列添加到主文件中,例如:
a b c d x
e f g h y
i j k l z
这可能是bash吗?我只能在每行的末尾添加相同的字符串。
答案 0 :(得分:3)
两种方法
1)paste file1 file2
2)遍历两个文件并逐行合并并写入新文件
答案 1 :(得分:1)
您可以为此使用GNU并行:
fe-laptop-m:test fe$ cat first
a b c d
e f g h
i j k l
fe-laptop-m:test fe$ cat second
x
y
z
fe-laptop-m:test fe$ parallel echo ::::+ first second
a b c d x
e f g h y
i j k l z
我对您想要实现的目标正确吗?
答案 2 :(得分:1)
这可能对您有用(GNU sed):
sed -E 's#(^.*) .*#/^\1/s/$/ &/#' file2 | sed -f - file1
从file2创建一个sed脚本,该脚本使用正则表达式来匹配file1中的一行,如果确实这样做,则会将file2中该行的内容追加到匹配的行中。
N.B。这与文件1的顺序和长度无关。
答案 3 :(得分:0)
您可以尝试使用pr
pr -mts' ' file1 file2