我已经在Linux Box中使用了以下sed命令。但在solaris box中,情况并非如此。请纠正我问题是什么?

a=`sed ':a;N;$!ba;s/\n/ /g' file.txt`

投掷,
-bash-3.00$ a=`sed ':a;N;$!ba;s/\n/ /g' file.txt`
Label too long: :a;N;$!ba;s/\n/ /g

最佳答案

sed打开solaris时,您将不得不这样分解它:

sed -e ':a' -e 'N;$!ba' -e 's/\n/ /g' file.txt

根据man页:
b label  Branch to the : command bearing the label.
             If label is empty, branch to the end of
             the script.  Labels are recognized unique
             up to eight characters.

因为它们最多可以识别8个字符,如果您的标签短于您需要在多个表达式中拆分sed

关于linux - sed命令替换换行符在solaris中不起作用,但在linux中起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22189809/

10-16 19:58