在sed转换中,如何仅为最后一行应用稍微不同的模式?
我怎样才能扭转这种局面:在sed转换中,如何仅为最后一行应用稍微不同的模式?,sed,Sed,我怎样才能扭转这种局面: aaa bbb ccc 为此: aaa, bbb, ccc 使用sed 请注意,除最后一行外,所有行都以逗号结尾 在我真正的问题中,我还对行进行了一些正则表达式替换。是否有一种解决方案不会复制它们?您可以使用: sed '$q;s/$/,/' 如果要在最后一行应用不同的替换,仍然可以使用$地址: sed '$s/$/;/;$q;s/$/,/' 以上内容将用替换该行的末尾如果是最后一行,否则将使用, $s/$//=在最后一行,将该行末尾替换为 $q=在最后一行,退
aaa
bbb
ccc
为此:
aaa,
bbb,
ccc
使用sed
请注意,除最后一行外,所有行都以逗号结尾
在我真正的问题中,我还对行进行了一些正则表达式替换。是否有一种解决方案不会复制它们?您可以使用:
sed '$q;s/$/,/'
如果要在最后一行应用不同的替换,仍然可以使用$
地址:
sed '$s/$/;/;$q;s/$/,/'
以上内容将用替换该行的末尾代码>如果是最后一行,否则将使用,
$s/$//代码>=在最后一行,将该行末尾替换为代码>
$q
=在最后一行,退出
s/$/,/
=将行尾替换为,
最后一个s
命令将针对每一行运行,但不会针对q
命令位于2的最后一行运行。告诉它退出
见:
您可以使用:
sed '$q;s/$/,/'
如果要在最后一行应用不同的替换,仍然可以使用$
地址:
sed '$s/$/;/;$q;s/$/,/'
以上内容将用替换该行的末尾代码>如果是最后一行,否则将使用,
$s/$//代码>=在最后一行,将该行末尾替换为代码>
$q
=在最后一行,退出
s/$/,/
=将行尾替换为,
最后一个s
命令将针对每一行运行,但不会针对q
命令位于2的最后一行运行。告诉它退出
见:
这样做的诀窍是:分别给sed两个命令使其在管道中工作并避免了重复。这样做的诀窍是:分别给sed两个命令使其在管道中工作并避免了重复。