前导空间保留在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\
的文本中忽略前导空格的行为是正确的。您能在文档中看到任何说明此行为正确的信息吗?