我有一个包含内核配置变量的文件。 我想评论最后130行。
我知道sed
执行内联替换,如何将此命令与tail
结合使用以注释掉最后130个字符。
提前致谢。
tail -n 130 <file-name> | sed -i ... #I am clueless beyond this point
答案 0 :(得分:5)
从第130行更改为结束尝试:
sed '130,$s/^/#/'
这会在第130行的开头添加#
以结束。
更改最后130行:
tac file | sed '1,130s/^/#/' | tac
答案 1 :(得分:3)
以下是使用awk
awk '{a[NR]=$0} END {for (i=1;i<=NR;i++) {if (i>NR-130) a[i]="#"a[i];print a[i]}}' file
这是另一个较短的awk
awk 'FNR==NR {a=NR;next} FNR>a-130 {$0="#"$0}1' file{,}
file{,}
与file file
答案 2 :(得分:1)
由于我无法在طاهر回复中添加评论,我必须自己创作。
您的回答会记录从第130行到结束的所有内容。 不是问题从最后的130行,而不是直到结束的130行?
如果是在脚本中,那么使用
FROM=$(wc -l < file)
(( FROM = FROM - 130 ))
然后
sed $FROM',$s/^/#/' < file
会起作用。
答案 3 :(得分:0)
这可能适合你(GNU sed):
sed -i ':a;${s/^/#/Mg;b};N;s/\n/&/130;Ta;P;D' file1 file2 file...