2013-12-11 85 views
0

我在一個文件中有很多行,只包含' - ',我想每行都包含' - '。但是文件中還有許多其他行包含'SOMETEXT - SOMETEXT'。Sed刪除包含n個字符的行

sed -i「/ -/d」將刪除所有' - '的實例,但我只想刪除所有隻包含' - '的行。

回答

0

您可以使用^$指示線
sed -i '/^--$/d'

0

含有如果要包括與前/後空格線僅--將匹配正則表達式^--$

線的開始和結束,它可以擴展到

^\s*--\s*$ 
0
sed -i '/^--$/' file 

^$字符分別將搜索「錨定」到行的開頭和結尾。

或者是否有可能是在前面的空格或後並假設modernish sed

sed -i '/^[[:space:]]*--[[:space:]]*$/' file 

其中[:space:]會發現空間字符和標籤。

ELSE共復古sed應該處理

sed '/^[ ]*--[ ]*$/' file > newFile && mv newFile file 

,如果有可能的選項卡,然後只包括一個選項卡字符與空間字符一起,即\

[<Space><TAB>] 

,但沒有說,出來,只需輸入一個空格字符和一個選項卡字符將做到這一點。

IHTH