bash脚本字典查找

时间:2014-01-27 18:36:39

标签: bash unix scripting

我有一个随机整数查找返回6个整数。从这6个整数中,我需要在dictionary.txt文件中找到与该整数相关联的每个字符串,然后连接每个找到的单词。

词典:

...
65161   yokel
65162   yolk
65163   yon
65164   yond
65165   yore
65166   york
65211   yost
65212   you
65213   you'd
65214   young
65215   your
65216   youth
...

到目前为止我已经

curl "http://www.random.org/integers/?num=6&min=11111&max=66631&col=1&base=10&format=plain"
29215
60374
46137
57290
35214
32278

所以我只需要取这6个数字并连接每个找到的相关单词。谢谢!

3 个答案:

答案 0 :(得分:1)

words=$( grep -Fwf <( curl ... ) dictionary | grep -oP '(?<=\s)\S+' )

words=$( awk 'NR==FNR {num[$1]; next} $1 in num {print $2}' <( curl ... ) dictionary )

然后

echo $words   # no quotes

答案 1 :(得分:0)

如果您的dictionary.txt文件每行一个字,并且如果您提取数字123,则需要该文件的第123行上的字,您可以这样做:

NUM=$(curl "http://www.random.org/integers/?num=6&min=11111&max=66631&col=1&base=10&format=plain")
WORD=$( sed -n "${NUM}p" dictionary.txt
echo "$NUM $WORD"

如果您的dictionary.txt文件同时包含每行的数字和单词,则可以执行以下操作:

NUM=$(curl "http://www.random.org/integers/?num=6&min=11111&max=66631&col=1&base=10&format=plain")
WORDLINE=$( sed -n "/${NUM}/p" dictionary.txt
echo "$WORDLINE"

答案 2 :(得分:0)

curl "..." | grep ^"$a" dictionary.txt | awk '{printf $2}'; done