我在一个文件中有很多行,每行只包含' - '我想要删除。但是文件中还有许多其他行包含'SOMETEXT - SOMETEXT'。
sed -i“/ - / d”将删除所有' - '实例,但我只想删除所有只包含' - '的行。
答案 0 :(得分:0)
您可以使用^
和$
来表示行的开头和结尾
sed -i '/^--$/d'
答案 1 :(得分:0)
仅包含--
的行会匹配正则表达式^--$
如果要包含带有前导/尾随空格的行,可以将其扩展为
^\s*--\s*$
答案 2 :(得分:0)
sed -i '/^--$/' file
^
和$
字符分别将搜索“锚定”到行的开头和结尾。
或者如果前面或后面有空格并假设现代sed
sed -i '/^[[:space:]]*--[[:space:]]*$/' file
其中[:space:]
将找到空格字符和标签。
ELSE总复古sed
应处理
sed '/^[ ]*--[ ]*$/' file > newFile && mv newFile file
如果有标签,那么只需要包含一个tab char和空格char,即。\
[<Space><TAB>]
但不拼写,只需输入空格字符和标签字符就可以了。
IHTH