2017-05-10 32 views
0

我試圖取代與標記一個txt文件我所有的空行,所以,比如我有:如何更換空行與字符/串用的sed

aaaaa 

bbbbb 

ccccc 

,我想

<a>aaaaa</a><a>bbbbb</a><a>ccccc</a> 

我已經試過

sed 's/^\s*$/</a><a>/‘ file.txt 

,但它並沒有跑,而是我應該怎麼辦?謝謝!

+0

你必須使用不同的分隔符。由於你的替換字符串也有'/'。說:'sed的@^\ s * $ @ @'文件' – sat

+0

它的工作原理!非常感謝。 –

+0

使用管道作爲分隔符'|'。 sed不可能知道「」中的'/'不是參數分隔符。此外,您正在查找的模式是's \^\ s * \ n(\ w +)\ n \ s * \ n | \ 1 | g'。另一件事是你需要多線支持。不知道你的sed是否可以做到這一點。請參閱「https://unix.stackexchange.com/questions/264344/how-to-replace-a-multi-line-code-with-sed」 – aiao

回答

1

我已經使用了下面的awk命令,它按預期工作。

awk 'NF{printf "<a>" "%s",$0 "</a>"} END {print ""}' test.txt 

輸出:

<a>aaa</a><a>bbbbb</a><a>ccccc</a>