如何从包含带连字符的短语集的文件中搜索确切的短语

How to search exact phrase from a file which consist of set of phrase with hyphen

我有文件,其中包含如下几个短语。我想从中找出完全匹配的结果。

file.txt

abc
abc-def
xyz
xyz-pqr
pqrs

如果我搜索“abc”,我只需要 return abc。 要么 如果我搜索“abc-def”我只需要return“abc-def

首选输出

$grep -w "abc" file.txt
abc

$grep -w "abc-def" file.txt
abc-def

下面的方法连字符

不起作用
$grep -w abc file.txt 

为了匹配整行,您需要匹配行的开头和结尾:

grep '^abc$' file.txt
grep '^abc-def$' file.txt

根据您给定的 data/file,您可以使用 -x 标志。

grep -x abc file.txt

grep -x abc-def file.txt

  • -x, --line-regexp 强制 PATTERN 只匹配整行

  • -x 标志是 defined/required POSIX grep(1)

您可以这样使用awk

awk -v w="abc" '==w' file.txt
abc

或者,

awk '==w' w="abc" file.txt

使用 == 运算符,它只会 returns 完全匹配的字符串。我们正在使用 -v 开关或通过标准输入设置与 w="abc" 匹配的内容。