编辑文本文件以更改特定行号的内容

时间:2014-03-02 23:48:32

标签: perl sed awk gawk

我想更改文本文件中的特定行。

我试过这个

perl -p -i  -e "s/JAI/ramkrishna/ if $. == 37" test.tex

但它只是删除JAI而不是写ramkrishna

2 个答案:

答案 0 :(得分:1)

sed '37s/JAI/ramkrishna/' filename

答案 1 :(得分:1)

你的命令工作正常。我猜你的行号错了吗?

使用这样的test.tex文件

aa
bb
cc
aa bb cc JAI dd ee ff
bb
cc
aa bb cc JAI dd ee ff
xx
yy
zz

命令

perl -p -i  -e 's/JAI/ramkrishna/ if $. == 7' test.tex

将文件更改为

aa
bb
cc
aa bb cc JAI dd ee ff
bb
cc
aa bb cc ramkrishna dd ee ff
xx
yy
zz