避免在grep结果中使用破折号
我试图选择一行,其中有一个名字“保罗” 这还会返回以paul henri开头的行。如何选择仅以“paul”一词开头的单行 (换句话说,如果后面跟有单词paul,则会选择破折号或斜杠/和点。)避免在grep结果中使用破折号,grep,Grep,我试图选择一行,其中有一个名字“保罗” 这还会返回以paul henri开头的行。如何选择仅以“paul”一词开头的单行 (换句话说,如果后面跟有单词paul,则会选择破折号或斜杠/和点。) 更新: 多亏了蒂姆,这一切都成功了: grep -w '^paul' some_file | grep -vE 'paul[-./?]' 您可以在模式上匹配^paul[^-]: !grep -w '^paul[^-]' some_file 这将匹配以paul开头的任何行,该行后跟除破折号以外的一个或多
更新: 多亏了蒂姆,这一切都成功了:
grep -w '^paul' some_file | grep -vE 'paul[-./?]'
您可以在模式上匹配
^paul[^-]
:
!grep -w '^paul[^-]' some_file
这将匹配以paul
开头的任何行,该行后跟除破折号以外的一个或多个字符。如果还需要匹配以paul开头且仅包含paul的可能行,则可能需要使用负前瞻:
^paul(?!-)
但是,这需要一个扩展版本的grep
,而您的grep版本可能不支持它
^paul(?!-)