我的文件,像这样:
cheney
fang
130034
target 'cheney11' do
pod xxx
end
target 'cheney22' do
pod xxx
end
我想插入一行
:git=>www.google.com, :branch=>'master'" afert "target 'cheney11' do
发现结果看起来像这样:
cheney
fang
130034
target 'cheney11' do
:git=>www.google.com, :branch=>'master'
inerset a line like
pod xxx
end
target 'cheney22' do
pod xxx
end
注意::git=>www.google.com, :branch=>'master'
之前有五个空格
答案 0 :(得分:0)
能否请您尝试关注一下,并告诉我们这是否对您有帮助。
awk '
/target \047cheney11\047 do/{
print " :git=>www.google.com, :branch=>\047master\047" ORS $0;
next
}
1' Input_file
将> temp_file && mv temp_file Input_file
附加到上面的代码中,以防您也要将其输出保存到相同的Input_file。
解决方案2: 如下使用sed
。
sed "s/target 'cheney11' do/ :git=>www.google.com, :branch=>'master'\n&/" Input_file
请使用sed -i.bak
进行备份并将更改保存到Input_file中,或者使用sed -i
选项仅将输出保存到Input_file本身中。
答案 1 :(得分:0)
a \
文本附加文本,每个嵌入的换行符前都有一个反斜杠
$ sed "/target 'cheney11'/a \
\ :git=>www.google.com, :branch=>'master'" file
测试:
kent$ cat f
cheney
fang
130034
target 'cheney11' do
pod xxx
end
target 'cheney22' do
pod xxx
end
kent$ sed "/target 'cheney11'/a \
\ :git=>www.google.com, :branch=>'master'" f
cheney
fang
130034
target 'cheney11' do
:git=>www.google.com, :branch=>'master'
pod xxx
end
target 'cheney22' do
pod xxx
end