使用sed替换特定的行号

使用sed替换特定的行号,sed,Sed,我使用以下内容替换行号29到32上的文本: sed -i '29,32 s/^ *#//' file 如何在上述命令中进一步添加行号,即line35到38、line43和line45m是一个标签 sed -i '29,32bm;35,38bm;43bm;45bm;b;:m;s/^ *#//' file 从man sed: b标签:分支到标签;若省略了标签,则分支到脚本的末尾 :标签:b和t命令的标签 这可能适用于您(GNU-sed): 使用awkawk'NR>28&&NR34&&NR

我使用以下内容替换行号
29到32上的文本:

sed -i '29,32 s/^ *#//' file

如何在上述命令中进一步添加行号,即line
35到38、line
43和line
45
m
是一个标签

sed -i '29,32bm;35,38bm;43bm;45bm;b;:m;s/^ *#//' file
man sed

b标签
:分支到标签;若省略了标签,则分支到脚本的末尾

:标签
:b和t命令的标签

这可能适用于您(GNU-sed):


使用awk
awk'NR>28&&NR<32 | | NR>34&&NR<39 | | NR==43 | | | NR==45{do gsub#}文件
@VarunM谢谢你的选择,不过我会选择下面的答案。太棒了!很有魅力。。谢谢:)谢谢@potong的选择。我同意上面的解决方案。
cat <<\! | sed 's:$:s/^ *#//:' | sed -f - -i file
29,32
35,38
43,45
!
sed 's:$:s/^ *#//:' lineRangeFile | sed -f - -i file