我有一个 YAML 文件:
- name: scheduler-configuration
- name: scheduler
我正在抓一些类似的东西
grep "scheduler" file.txt
输出显示两行,但我只想要单行,例如:
-name: scheduler
有什么方法可以将其grep
(或任何类似的工具)限制为确切的模式吗?
答案1
正如所解释的这里, grep 认为单词由字母数字字符和下划线组成。因此-
,grep scheduler
即使您使用grep -w
.
您可以编写自己的模式,以匹配“scheduler”之前和之后,其中不仅包括字母数字和“_”的相反字符,还包括其他字符。
grep -E '([^[:alnum:]_-]|^)scheduler([^[:alnum:]_-]|$)' file.txt
这将匹配未被其他字母数字字符或“_”或“-”包围的“scheduler”
答案2
看起来你可能只想scheduler
被空白包围或什么都没有:
$ grep -E '(^|[[:space:]])scheduler([[:space:]]|$)' file
- name: scheduler