如何在shell中的指定行号中添加或删除字符?

时间:2016-08-10 04:55:20

标签: bash shell unix sed

我有一个文件,我必须多次迭代,每次都用python运行它。如何从shell中的特定行中删除或添加字符?

示例文件ex.file,

$ cat ex.file
stuff
more stuff
more stuff
more stuff
#<- remove this character
<-add a pund sign here
more stuff
more stuff

我想要的输出是:

$ cat ex.file
stuff
more stuff
more stuff
more stuff
<- remove this character
#<-add a pund sign here
more stuff
more stuff

2 个答案:

答案 0 :(得分:3)

在第6行的开头添加#:

sed '6 s/^/#/' ex.file

从第5行删除前导#:

sed '5 s/^#//' ex.file

答案 1 :(得分:1)

Oneliner awk版本从第5行删除#并将#添加到第6行。

awk 'NR==5 {sub(/^#/,"") } NR==6 { sub(/^/,"#")}1' infile