我有一个很大的单词列表(> 1000),它们实际上是文件名,并且包含很多源代码文件(> 2000)。我想为列表中的每个单词(文件名)计算其在目录的所有文件中的总出现次数。我目前正在做的是:
#!/bin/sh
SEARCHPATH=$1
for var in "${@:2}"
do
BASE=$( basename "$var" )
COUNT=$(grep -o "$BASE" $SEARCHPATH/* | wc -l)
echo -e "$BASE:" " $COUNT"
done
这种方法有效,但效率低下,因为对于每个单词,它都会搜索整个目录,并且单词太多。我正在寻找一种扫描目录一次,累积字数的解决方案。
将您所有的单词都放在一个文件中。然后,您可以尝试以下操作:
grep -ohFf wordsFile path/* | sort | uniq -c
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句