ubuntu,如果是单独sed
删除就行ze
ze
我得到的最接近的是sed "s/\bze\b//g"
并且sed "s/^\bze\b//g"
不会产生预期的结果。
在 sed 之前:
ze.com
example.ze
zero.com
ze
sed 后:
ze.com
example.ze
zero.com
ubuntu,如果是单独sed
删除就行ze
ze
我得到的最接近的是sed "s/\bze\b//g"
并且sed "s/^\bze\b//g"
不会产生预期的结果。
在 sed 之前:
ze.com
example.ze
zero.com
ze
sed 后:
ze.com
example.ze
zero.com
您需要行锚而不是单词边界
使用
grep
:使用的选项:
-v
否定匹配的意义,因此只返回不匹配模式的行。-x
要求模式匹配从头到尾的完整行。-F
告诉grep
模式是一个固定的字符串,而不是一个正则表达式。您的
sed
表达式的问题是替换修改了输入中的一行,但它永远不会删除一行。该模式\bze\b
将正确匹配完整的单词ze
,但该单词也存在于其他行中,而不仅仅是最后一行。要删除带有 的行
sed
,请将其d
命令与与您要删除的行匹配的正则表达式一起使用,例如^ze$
Steeldriver在他的答案中显示。对于具体示例(删除最后一行),
也将是一种选择。这里,
$
不是一个正则表达式(因为它不在里面/.../
),而是文件中最后一行的特殊地址。