I would like to change a specific line in a text file.

I have tried with this

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

But it is just deleting JAI but not writing ramkrishna.

有帮助吗?

解决方案

Your command works just fine. I guess you have the line number wrong?

With a test.tex file like this

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

the command

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

changes the file to

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

其他提示

sed '37s/JAI/ramkrishna/' filename
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top