使用sed从一个文件添加文本以匹配另一文件的模式

时间:2019-04-12 13:25:08

标签: sed

我正在使用sed,我需要将文件2中的文本添加到文件1中每一行的末尾。

我尝试使用类似sed 's/.*/name & /' input.txt > output.txt之类的方法,但是它不起作用。

file1包含:

name,text1,
name,text2,
name,text3,

file2包含:

animals.com
cars.com
planes.com

最终输出:

name,text1,animals.com
name,text2,cars.com
name,text3,planes.com

3 个答案:

答案 0 :(得分:0)

尝试一下:

paste -d ' ' file1 file2 | sed "s/ //"

答案 1 :(得分:0)

通过bash shell;

i=1;while read l ;do sed -En "$i{s/.*/$l&/p;q}" file2 ;let i++; done<file1

如果file1有空间,则第一个预设IFS =''

答案 2 :(得分:0)

这可能对您有用(GNU sed):

sed '=' file2 |
sed 'N;s/\n\(.*\)/s#$#\1#/' |
sed -f - file1

在file2的每一行之前加上其行号。

将file2的每一行转换为替换行,并将其行的内容附加到预期文件的相同行号上。

运行sed的第三次调用,以将制造的sed脚本应用于file1。

替代:

parallel echo {1}{2} :::: file1 ::::+ file2