避免在grep结果中出现破折号

问题描述 投票:0回答:1

我正在尝试选择名称为“ paul”的行。

!grep -w '^paul' some_file

这还将返回以paul-henri开头的行。如何选择仅以单词“ paul”开头的单行?

(换句话说,短划线或斜线/和点。如果后面有保罗字,则会被选中]


更新:

感谢蒂姆,这项工作有效:

grep -w '^paul' some_file | grep -vE 'paul[-./?]'
regex grep
1个回答
1
投票

您可以在模式^paul[^-]上进行匹配:

!grep -w '^paul[^-]' some_file

这将匹配以paul开头的任何行,然后以破折号后接一个或多个字符。如果还需要匹配以and开头且仅包含paul的行,则可能需要使用负前瞻:

^paul(?!-)

但是,这将需要扩展版本的grep,而您的grep版本可能不支持它。

© www.soinside.com 2019 - 2024. All rights reserved.