2014-08-28 357 views
1

我想在特定文本之后的下一行中将输出插入文件...。在特定文本之后插入文本

在我的输出(Text1.txt)我有不同的线路用域名:

hxxp://example1.com 
hxxp://example2.com 

我想与文本行后插入该行到另一个文本文件(Text2.txt)“找到的URL“(注意:我不知道行号)。

bla 
bla 
bla 
URLs found 
hxxp://example1.com 
hxxp://example2.com 
bla 
bla 

我该怎么做?

回答

3

你可以做到这一点使用的sed:

sed -i '/URLs found/r Text1.txt' Text2.txt 

当匹配模式,插入Text1.txt的内容。 -i开关意味着sed就地编辑文件。

或者,你可以做同样的事情在AWK:

awk 'NR==FNR{a[n++]=$0;next} 1; /URLs found/{for (i=0;i<n;++i) print a[i]}' Text1.txt Text2.txt > tmp && mv tmp Text2.txt 

阅读所有Text1.txt行成一个阵列。 1;意味着Text2.txt中的每一行都被打印出来。当模式匹配时,数组的内容也被打印出来。

+1

AWK对我的作品。非常感谢你! – user3022917 2014-08-28 19:24:46

2

sed变得非常简单:

sed -i '/URLs found/ r Text1.txt' Text2.txt 
相关问题