我正在使用一个小的bash脚本。我需要删除与该行的第一个单词中的确切单词匹配的整行。
这就是文本文件的外观:
John is a dumb
Maria is awesome
Toni and Maria are funny
我想删除第二行。
现在,我可以匹配确切的单词“maria”,但它也删除了第三行:
sed -i "/\b\(maria\)\b/d" file.txt
如何只指定第一个单词?
谢谢!
答案 0 :(得分:4)
目前您正在寻找" maria"被一个单词边界包围(由\b
代表。)而是寻找" maria"前面是行的开头(由^
表示。)注意我还删除了不必要的括号并添加了/I
标志,这将使搜索不区分大小写。你的原作不会匹配" Maria"。
sed -i "/^maria\b/Id" file.txt
编辑:固定不区分大小写的标志,而不是i!