sed - 符合 Posix 的通用多个插入/附加单个命令

问题描述 投票:0回答:1

我想在一个可移植的 sed 命令中执行多次插入/追加。

在 GNU sed 中,我可以做类似的事情:

sed -e '1i hi' -e '$a bye' <(seq 1 10)

我发现了以下作品,但我不确定这是否是在 Posix 兼容的 sed 中处理它的正确/最佳方法:

sed --posix '1{x;s/$/hi/;G};//h;${x;s/$/\nbye/}' <(seq 1 10)

--或--

sed --posix '1{x;s/$/hi/;G};${s/$/\nbye/}' <(seq 1 10)

我还没有看到有人真正讨论过如何删除保留空间,我猜测一下 - 这是在所有 posix 兼容的 sed 中实现此目的的最佳方法吗?

sed posix
1个回答
0
投票

第一个命令中的 GNU 主义是

i
a
接受要在同一行上插入的行,而 POSIX 要求它们位于不同的行上。这应该符合:

sed --posix -e '1i \
hi' -e '$a \
bye' <(seq 1 10) 
© www.soinside.com 2019 - 2024. All rights reserved.