将文件A的内容追加到文件B的每一行末尾?bash

3

我很难理解这个问题。

文件A包含以下内容:

1.1.1.1
2.2.2.2
3.3.3.3

文件B将始终具有完全相同的行数,并且它们始终会对应:

oneoneoneone
twotwotwotwo
3ee3ee3ee3ee

我想将文件A追加到文件B中,使其看起来像这样:
1.1.1.1 oneoneoneone
2.2.2.2 twotwotwotwo
3.3.3.3 3ee3ee3ee3ee

这是我的代码,但它不能正常工作:

对于/tmp/fileB中的每个z,运行以下命令:sed "s/(.*)/\1$z/" < /tmp/fileA >> /tmp/c;

有什么建议吗?

1个回答

5
如果你想将fileB中的行追加到fileA中的行(正如你所需的输出所示),只需执行以下操作:
paste fileA fileB

使用制表符作为分隔符,因此您可能更喜欢
paste -d ' ' fileA fileB

如果您想使用awk来完成,您可以这样做:
awk '{ getline b < "fileB"; print $0, b}' fileA

这可能可以使用sed实现,但不建议。类似于您似乎正在尝试的循环,您也可以进行如下操作:
while read b; do read -u 4 a; echo $a $b; done < fileb 4< filea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接