2014-10-09 51 views
1

嗨我有这个问题。linux在字符串匹配前插入文件内容

我有一个原始文件:

$cat original.txt 
User has access to the system 

和我要添加到原文件内容的第二档:

$cat toAdd.txt 
Anna 

结果应该如下:

$cat original.txt 
User Anna has access to the system 

我尝试了几个选项,如:

sed '/has/e cat toAdd.txt' original.txt 

,但它不工作:-(

请帮助!

+1

建议的解决方案不会在这种情况下工作。 – MrTeleBird 2014-10-09 10:57:46

+0

解释为什么建议的解决方案无法正常工作! – 2014-10-09 11:44:44

回答

1

通过AWK,

$ awk 'FNR==NR{var=$0; next}{for (i=1;i<=NF;i++){if($i=="has"){$i=var" "$i}}}1' toAdd.txt original.txt 
User Anna has access to the system 
+0

嗨,谢谢!然而,这只是一个简单的例子。我希望有一个解决方案,我可以传递模式来匹配,而不仅仅是基于它在字符串上的位置。在这个例子中,“has”将是要匹配的模式,然后在文件之前插入文本中的文本。 – MrTeleBird 2014-10-09 10:46:45

+0

哦,你是否在原始问题中尝试了答案? – 2014-10-09 10:49:42

+0

是的,我试过即sed'/ has/r toAdd.txt'original.txt,但它不起作用 – MrTeleBird 2014-10-09 10:53:04