Dan*_*olo 4 regex linux bash sed
我正在使用一个小的 bash 脚本。我需要删除仅在该行的第一个单词中与精确单词匹配的整行。
这就是文本文件的样子:
John is a dumb
Maria is awesome
Toni and Maria are funny
Run Code Online (Sandbox Code Playgroud)
我想删除第二行。
现在,我可以匹配确切的单词“maria”,但它也删除了第三行:
sed -i "/\b\(maria\)\b/d" file.txt
Run Code Online (Sandbox Code Playgroud)
如何仅指定第一个单词?
谢谢!
目前您正在寻找“玛丽亚”,由一个单词边界包围(表示为\b。)相反寻找“玛丽亚”,由行的开始之前(以表示^)。注意我还删除不必要的括号内添加的/I标志,这将使搜索不区分大小写。您的原件不会与“玛丽亚”匹配。
sed -i "/^maria\b/Id" file.txt
Run Code Online (Sandbox Code Playgroud)
编辑:将不区分大小写的标志固定为 I 而不是 i!