我使用以下内容替换 29 到 32
行的文本:
sed -i '29,32 s/^ *#//' file
我该如何在上述命令中添加行号,例如第35到38
行,第43
行和第45
行?
我使用以下内容替换 29 到 32
行的文本:
sed -i '29,32 s/^ *#//' file
我该如何在上述命令中添加行号,例如第35到38
行,第43
行和第45
行?
m
是一个标签。sed -i '29,32bm;35,38bm;43bm;45bm;b;:m;s/^ *#//' file
来自 man sed
:
b label
: 跳转到标签;如果省略标签,则跳转到脚本的末尾。
: label
: 用于 b 和 t 命令的标签。
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
awk 'NR > 28 && NR < 32 || NR > 34 && NR < 39 || NR == 43 || NR == 45 {#do gsub#}' file
- Chem-man17