BSD sed忽略a \命令文本中的前导空格

时间:2019-03-11 16:33:54

标签: shell sed posix whitespace

前导空间保留在echo命令中。以以下脚本为例:

echo 'abc
    def'

输出:

$ sh foo.sh 
abc
    def

但是sed附带的BSD a\不会保留sed命令的macOS文本中的前导空格。使用以下脚本:

echo abc | sed '/abc/a\
    def
'

在macOS上使用BSD sed输出:

$ sh foo.sh 
abc
def

在Linux上使用GNU sed进行输出:

$ sh foo.sh
abc
    def

我能够在macOS上解决此问题,并保留这样的前导空格:

echo abc | sed '/abc/a\
\ \ \ \ def
'

输出:

$ sh foo.sh 
abc
    def

POSIX documentation of sed中为a\命令指定的文本中忽略前导空格的行为是什么?

我在文档中找不到任何说明a\的文本中忽略前导空格的行为是正确的。您能在文档中看到任何说明此行为正确的信息吗?

0 个答案:

没有答案