如何从包含带连字符的短语集的文件中搜索确切的短语
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"
匹配的内容。
我有文件,其中包含如下几个短语。我想从中找出完全匹配的结果。
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 POSIXgrep
(1)
您可以这样使用awk
:
awk -v w="abc" '==w' file.txt
abc
或者,
awk '==w' w="abc" file.txt
使用 ==
运算符,它只会 returns 完全匹配的字符串。我们正在使用 -v
开关或通过标准输入设置与 w="abc"
匹配的内容。