【问题标题】:GREP only if whole stringGREP 仅当整个字符串
【发布时间】:2022-01-08 19:35:15
【问题描述】:

这是 list.txt 文件:

001 Linux000

002 Linux001

003 Linux002

cat list.txt | grep 002 返回:

002 Linux001

003 Linux002

但我只需要获取 002 所在的行,而不是 Linux002。

002 Linux001

【问题讨论】:

  • sooo grep -w 002??
  • 或:grep ^002
  • 对于单词的匹配,一般是grep -w 002 list.txt。当然,这意味着您对单词是什么的理解与 grep 认为是单词的想法相同。例如,结果可能取决于语言环境。也许您应该更准确地定义您想要实现的目标。
  • @MrV :但请记住,ceving 的建议也会匹配一行 0020 Linux002
  • awk '$1=="002"' list.txt?

标签: linux bash shell scripting


【解决方案1】:

grep 有效吗?

$ grep '\<002\>' input_file
002 Linux001

【讨论】:

    【解决方案2】:

    使用 GNU grep 考虑字边界 (\b):

    grep '\b002\b' list.txt
    

    【讨论】:

    • 你的回答没问题,但如果我有 Linux-002 它将无法工作,它还会显示包含 Linux-002 的行...
    • @MrV。您的问题中未指定这种情况。
    猜你喜欢
    • 1970-01-01
    • 2022-12-17
    • 2013-08-19
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多