GREP 仅当整个字符串

Posted

技术标签:

【中文标题】GREP 仅当整个字符串【英文标题】:GREP only if whole string 【发布时间】: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? 【参考方案1】:

grep 有效吗?

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

【讨论】:

【参考方案2】:

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

grep '\b002\b' list.txt

【讨论】:

你的回答没问题,但如果我有 Linux-002 它将无法工作,它还会显示包含 Linux-002 的行... @MrV。您的问题中未指定这种情况。

以上是关于GREP 仅当整个字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何通过使用 grep 扫描整个目录来在文件内容中查找具有特定字符串的文件 [重复]

使用 grep/find 从整个目录和子目录文件中查找字符串 [关闭]

shell脚本--grep工具

regular expression, grep (python, linux)

Linux命令 grep命令基本用法

由一条Linux的grep命令说起