sed 显示行号并添加/删除注释

sed 显示行号并添加/删除注释

我可以使用命令显示指定行号

sed -n '22p; 24p; 27p' blah.conf

输出

A
B
C

我需要在这 3 个指定行号的开头插入注释 #,我只成功运行此命令从第 22 行到第 24 行添加注释,但不是指定行号,我尝试了很多语法但失败

sed -i '22,24 s/^/#/' blah.conf

输出

#A
#B
#C

如果插入评论有效,我还需要命令来执行相反的操作删除评论

输出

A
B
C

谢谢

答案1

这应该可以在特定行上切换注释,保持所有空白完好无损:

$ cat file
A
# B
  C

$ sed -Ei '2b1;3b1;b;:1;s/^([[:blank:]]*)#/\1/;t;s/^([[:blank:]]*[^#[:blank:]])/#\1' file

# Run the same cat again
$ !cat
A
 B
#  C

# Run the same sed again
$ !sed

# Run the same cat again
$ !cat
A
# B
  C

为需要切换的<n>b1;每一行添加。 首先尝试不使用或使用.<n>
-i-i.bak

sed分支通过

相关内容