我在下面使用替换行号29 to 32
上的文字:
sed -i '29,32 s/^ *#//' file
如何进一步添加行号,即行35 to 38
,行43
&上面命令中的45
行?
答案 0 :(得分:2)
使用GNU sed。 m
在这里是一个标签。
sed -i '29,32bm;35,38bm;43bm;45bm;b;:m;s/^ *#//' file
来自man sed
:
b label
:分支标签;如果省略label,则跳转到脚本结尾。
: label
:b和t命令的标签。
答案 1 :(得分:0)
这可能适合你(GNU sed):
cat <<\! | sed 's:$:s/^ *#//:' | sed -f - -i file
29,32
35,38
43,45
!
使用您想要的行范围创建一个here-document,并将它们传递给sed脚本,该脚本创建另一个针对所需文件运行的sed脚本。
here-document可以替换为文件:
sed 's:$:s/^ *#//:' lineRangeFile | sed -f - -i file