Wil*_*ard 5 sed posix portability
我注意到以下有趣的行为:
$ printf '%s\n' line{1..2} | sed $'1a\\\nPREFIX'
line1
PREFIXline2
$
Run Code Online (Sandbox Code Playgroud)
有趣的是,这种行为仅适用于 Sed 脚本中的最后一个命令,因为在之后放置另一个命令需要换行符。
它也适用于插入命令:
$ printf '%s\n' line{1..2} | sed $'1i\\\nPREFIX'
PREFIXline1
line2
$
Run Code Online (Sandbox Code Playgroud)
可以依赖这种行为吗?
我没有看到它在Sed的POSIX 规范中以一种或另一种方式提及。它只是说text
可能由一行或多行组成。(如果一行没有以换行符结尾,它仍然是一行吗?)
它还适用于多行插入:
$ printf '%s\n' line{1..2} | sed $'1a\\\n ****/\n1i\\\n/****\\\n * '
/****
* line1
****/
line2
$
Run Code Online (Sandbox Code Playgroud)