2014-03-05 46 views

回答

2

隨着sedsolaris你必須打破它是這樣的:

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. 

由於它們最多識別八個字符,因此如果您的標籤比您需要將多個表達式中的sed拆分爲更短。

+0

我希望它能在linux下工作? – logan

+0

@logan是的,它會。 –

1

在原來的sed中,我認爲一個標籤本身必須在一行上。從我非常古老的sed & awk果殼書中,它陳述:

標籤是最多七個字符的任何序列。標籤是由本身擺出一副線和一個冒號開始:

:label

這意味着,你需要將其從腳本的其餘部分與多個-e分隔參數或者看看你您的Solaris機器上有nawkgawk。另外,因爲它似乎你只是想空格替換所有的換行,也有這份工作更好的工具,如tr的翻譯工具,它應該至少是一樣普及,因爲sed

a=`tr '\n' ' ' <file.txt` 
相關問題