我正在尝试text += num.toString(16);
使用 sed 在每行之后添加该行。
我的做法是:Replace every new line with a new line, plus text += num.toString(16);
。那是:
sed 's/\
/\
text \+= num\.toString\(16\);/g'
Run Code Online (Sandbox Code Playgroud)
但我无法让这个工作。我正在unterminated substitute pattern
从 sed获取。
这里有什么问题?
我正在使用 BSD sed。
你不能使用:
s/\
/
Run Code Online (Sandbox Code Playgroud)
在s/pattern/replacement/
表单中匹配模式空间中的换行符。这取决于解释该模式的实现。GNU sed 和 BSD sed 都将其视为文字换行符,但 BSD sed不接受并会引发错误。
通常,您不能在输入行的末尾\n
匹配换行符,但是您可以使用来匹配作为N
命令结果出现在模式空间中的换行符。
正确的方法,POSIXLY:
sed 'a\
text += num.toString(16);
'
Run Code Online (Sandbox Code Playgroud)
或者:
sed 's/$/\
text += num.toString(16);/'
Run Code Online (Sandbox Code Playgroud)