考虑这个文件:
1
2
3
4
5
我可以用这个提取最后 3 行sed单行:
$ /bin/sed input.txt -e ':a;$q;N;4,$D;ba'
但我还想#
在每行前面添加一些字符 ( ),以便输出如下所示:
# 3
# 4
# 5
我该如何修改单行代码来做到这一点?我的意思是,无需添加另一个sed
调用(使用| /bin/sed -e 's/^/# /'
)。
我更愿意使用sed
只出于同样的原因使用原来的问题,即我的系统可用的二进制文件有限。
答案1
而不是使用sed
打印最后一个n线路使用tail
:
$ tail -3 input.txt | sed 's/^/# /'
# 3
# 4
# 5
另外你也不需要cat
该文件,请参阅猫的无用用途。
仅使用sed
:
sed ':a;${s/^/# /;s/\n/&# /g;q;};N;4,$D;ba' input.txt