检测句子是否包含文件中的单词

时间:2016-05-27 08:50:40

标签: bash input grep word-list

当用户输入内容时,脚本会检查输入是否包含wordfile中的任何单词。

输入:

A sentence that contains the word, word1.

Wordfile:

word1
word2
word3

代码:

[[ -z $(cat 'vocabulary/lists/wordfile' | grep -Fe $($input//" "/"\|")) ]]

输出:

> [WORD]
./core.sh: line 168: [WORD]// /\|: No such file or directory
grep: option requires an argument -- 'e'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
[WORD]

2 个答案:

答案 0 :(得分:2)

我认为这可能就是你所需要的:

grep -Fqf wordfile <<<"$input" && echo 'found a word'

这使用文件-Fwordfile)中的模式进行固定字符串匹配(-f wordfile),如果找到任何匹配项,则使用-q以静默方式退出。

例如:

$ cat wordfile
apple
ball
cat
$ input='a string containing the word ball'
$ grep -Fqf wordfile <<<"$input" && echo 'found a word'
found a word

答案 1 :(得分:1)

试试这个:

[[ -n $(sed -n -f <(sed 's/^/\//g;s/$/\/p/g' vocabulary/lists/wordfile) <<< "$input") ]] && echo Found