我想在除了第1,2,3行和最后一行之外的所有行的末尾添加逗号。 我尝试使用sed实现它:
sed '$![1 2 3 s/,/' filename
但这不起作用。
有什么建议吗?
答案 0 :(得分:4)
您可以使用地址范围1,3
排除添加逗号的前三行,然后从最后一行(地址中的$)中删除逗号。
sed '1,3!s/$/,/;$s/,$//'
答案 1 :(得分:1)
另一种方法是使用b
命令
$ # GNU version: sed '1,3b; $b; s/$/,/'
$ seq 7 | sed -e '1,3b' -e '$b' -e 's/$/,/'
1
2
3
4,
5,
6,
7
来自manual
b标签无条件地分支标签。标签可以省略 在哪种情况下开始下一个周期。
perl
版本
$ seq 7 | perl -pe 's/$/,/ if $. > 3 && !eof'
1
2
3
4,
5,
6,
7
$.
包含行号,eof
检查是否为最后一行