Sed删除包含n个字符的行

Sed删除包含n个字符的行,sed,Sed,我在一个文件中有许多行,在我要删除的每一行上只包含“---”。但文件中还有许多其他行包含“SOMETEXT--SOMETEXT” sed-i“/-/d”将删除所有'-'实例,但我只想删除所有只包含'-'的行。您可以使用^和$来指示行的开始和结束 sed-i'/^-$/d'仅包含-的行将匹配正则表达式^-$ 如果您想包含带有前导/尾随空格的行,可以将其扩展到 ^\s*--\s*$ ^和$字符分别将搜索“锚定”到行首和行尾 或者,如果前面或后面有空间,并采用现代化的sed sed -i '/^[[

我在一个文件中有许多行,在我要删除的每一行上只包含“---”。但文件中还有许多其他行包含“SOMETEXT--SOMETEXT”


sed-i“/-/d”将删除所有'-'实例,但我只想删除所有只包含'-'的行。

您可以使用
^
$
来指示行的开始和结束

sed-i'/^-$/d'

仅包含
-
的行将匹配正则表达式
^-$

如果您想包含带有前导/尾随空格的行,可以将其扩展到

^\s*--\s*$
^
$
字符分别将搜索“锚定”到行首和行尾

或者,如果前面或后面有空间,并采用现代化的
sed

sed -i '/^[[:space:]]*--[[:space:]]*$/' file
其中
[:space:][/code>将找到空格字符和制表符

否则,应处理一个总的追溯
sed

sed  '/^[ ]*--[ ]*$/' file > newFile && mv newFile file
如果可能有制表符,那么只需包括一个制表符字符和空格字符,即\

[<Space><TAB>]  
[]
但是不需要拼写,只需键入空格字符和制表符即可

IHTH

[<Space><TAB>]