在第n行替换文件中的字符串

时间:2015-09-01 06:42:09

标签: bash unix replace sed

您需要替换文件

中仅行文件中的字符串

文件1

  hi this is line 1
  hi this is line 2
  hi this is line 3
  hi this is line 4

我需要更换' hi'仅在第2行

专家如下

  hi this is line 1
  Hello this is line 2
  hi this is line 3
  hi this is line 4

我试过创建一个临时文件

  sed -n 2p  file1 > temp1
  perl -pi -e 's/hi/Hello/g' temp1  \\I tried to replace temp1 with line 2 in file1
  sed -i  '2d' file1   \\after this I failed to insert temp1 as a 2nd line in file1

帮我替换第N行中的文件中的字符串(首选的是没有临时文件..)。

谢谢

2 个答案:

答案 0 :(得分:10)

这可能对您有用:

sed -i '2s/hi/Hello/' file

答案 1 :(得分:0)

以上答案是正确的,但我很想把AWK变种作为参考。

awk 'NR==2{gsub("hi","Hello",$1)}; {print $0}' file > newfile