“sed”命令删除与第一个单词

时间:2015-10-29 16:11:37

标签: regex linux bash sed

我正在使用一个小的bash脚本。我需要删除与该行的第一个单词中的确切单词匹配的整行。

这就是文本文件的外观:

John is a dumb
Maria is awesome
Toni and Maria are funny

我想删除第二行。

现在,我可以匹配确切的单词“maria”,但它也删除了第三行:

sed -i "/\b\(maria\)\b/d" file.txt

如何只指定第一个单词?

谢谢!

1 个答案:

答案 0 :(得分:4)

目前您正在寻找" maria"被一个单词边界包围(由\b代表。)而是寻找" maria"前面是行的开头(由^表示。)注意我还删除了不必要的括号并添加了/I标志,这将使搜索不区分大小写。你的原作不会匹配" Maria"。

sed -i "/^maria\b/Id" file.txt

编辑:固定不区分大小写的标志,而不是i!