使用 sed 删除带有单词的行

0 command-line text-processing

我尝试使用sed '/\bpassword\b/d'sed "/\<password\>/d"仅查找包含“密码”的行并删除它们,但它不起作用,该命令还找到诸如“密码!”之类的词。或“密码@”。

假设我有这些话:

password
password1
password2
password!
password@
password%
password*
Run Code Online (Sandbox Code Playgroud)

我只需要删除带有“密码”的行而不是其他行。目前这两个命令删除了 "password@" 、 "password%" 、 "password!" 还有“密码*”。

vid*_*rlo 5

如果它们出现在每个单词的一行上,请使用 ^ 和 $ 来匹配行首和行尾。考虑以下示例文件foo

$ cat foo
password
password!1
password2
2password
Run Code Online (Sandbox Code Playgroud)

使用 sed 匹配行首和行尾仅替换由单独组成的行 password

$ sed '/^password$/d' foo
password!1
password2
2password
Run Code Online (Sandbox Code Playgroud)