2017-06-20 64 views
1

我想用sed命令我如何使用修改與新行空行SED

1234 
124 
12453 
12463 
13442 
3462 



421532 
124135 

12 

我想這對插入單詞「NO」,在所有在此文件中的空行命令,但我不知道它爲什麼不起作用:

sed '/'[:blank:]'/ c\ NO' inputfile.txt > outputfile.text 

會不會更容易使用sed命令?

+1

做'空白lines'總是包含什麼,或者是隻包含白線空間也被認爲是一個「空行」? –

回答

0

使用錨替換以換行符開頭和結尾的行。

sed 's/^$/NO/' inputfile.txt > outputfile.text 
+2

適用於_empty_行。句子「以換行符開頭和結尾的行」是誤導性的:在'sed'的上下文中,默認情況下,行是_between_換行符,因此它本身不包含它們。 '^'匹配手邊的行(模式空間)的開始,'$'結束。換句話說:'^ $'匹配一個空字符串。 – mklement0

1

與NO使用SED更換空行:

sed 's/^[[:blank:]]*$/NO/' inputfile.txt > outputfile.text

  • ^- 行的beggining
  • $ - 行尾
  • [:空白:] * - 0或更多空白字符
2

POSIX [:blank:]僅表示空格和製表符,而不是空行。同樣在正則表達式中,你應該使用[[:blank:]]

sed 's/[[:blank:]]/NO/' inputfile.txt > outputfile.text 

如果你只是想NO替換用空格或製表符空行/線,然後用這個

sed 's/^[[:blank:]]*$/NO/' inputfile.txt > outputfile.text