shell脚本中的文件行替换

时间:2012-09-20 20:18:23

标签: bash shell ksh

我想搜索整行,并用一行或多行替换该行。

例如嗨我在那里。

我必须用这两行代替

嗨,我在那里

Arun在这里

基本上我要做的是在匹配线后插入一个新线。因为我不确定线号,以为我会搜索它应该放置的线,然后用2行代替这一行它是不可能的?我使用的代码var1和var是从csv文件中获取的,f是文件名

"s@$Var1@$Var2@g" "$f"  

1 个答案:

答案 0 :(得分:3)

 echo -e "Hi Im here\nLinetwo\nLine3" \
 | sed '/Hi Im here/a\
      Arun is here 

 '

<强>输出

 Hi Im here
 Arun is here
 Linetwo
 Line3

这是老式的sed语法。它应该适用于任何一个。

请注意a\后不允许使用空格或制表符,并且“a”ppend输入以空行终止,因此

 Arun is here
 (this is a blank line here, followed by the closing single quote for sed)
 '

IHTH