查找单词在文件中的位置

查找单词在文件中的位置

我想找到给定单词在文本文件中的位置。例如,如果我将单词变量定义为 abloom word。我想知道我使用了这个命令

grep -n "$word" mydict.txt

但如果我将单词变量定义为“ab”。代码给出了包含“ab”的每一行。例如,它也给出了单词 abloom,但我只想要 ab 单词的行。

答案1

您的意思是,您想在这里找到第 3 行,而不是第 1 行?

abcdefg
foobar
ab cd ef

如果是这样,grep -w可能对你有用(GNU 手册页):

-w,--word-regexp
仅选择包含构成整个单词的匹配项的行。

什么算作“单词”在一定程度上取决于语言环境。在 C 语言环境中,“单词字符”是字母、数字和下划线。

所以,其中ab有一个完整的词:

printf 'ab' | grep -w ab
printf 'ab cd' | grep -w ab
printf 'ab-cd' | grep -w ab
printf 'ab, cd' | grep -w ab

但不在这里:

printf 'ab_cd' | grep -w ab
printf 'ab1' | grep -w ab

相关内容