2017-06-16 89 views
0

我有一个包含一些行的文件。Linux Bash:如果条件匹配,则添加前缀到行

我想添加一个前缀到这些行,如果它包含一些关键词。

我该怎么做?谢谢!

我想补充"###"到线, “Hello” 在行的开头:

当前这个文件有:

This is the beginning. 
Hello I am Simon. 
This is a simple line; 
Hello Mike. 
This is another line. 

我想改变此文件到:

This is the beginning. 
###Hello I am Simon. 
This is a simple line; 
###Hello Mike. 
This is another line. 

回答

5

sed程序会为你做。对于例如,你贴:

$ sed 's/^Hello/###Hello/' <file> 
+2

请记住使用'sed -i'将更改写入文件并转义特殊字符。 – jgmh

+3

可能更习惯于写'sed'/^Hello/s/^/### /''。 –

1

和awk的解决方案是:

awk '{if($1=="Hello"){print "###"$0 ; } else {print $0}}' <file> 

但我认为SED是这种情况下,更好的办法。

+3

写'awk'/^Hello/{printf“###”}更加尴尬(也就是说更习惯)1'输入文件' –