我的代码在两个日志文件中查找一个单词,但这种方法似乎不太有效。有人知道更好的方法吗?
for IP in `grep "$TERM" ${IPECONFIG[APACHELOGFILE]} | grep "$TERM" ${IPECONFIG[APACHESSLLOGFILE]} | awk "{print \\$1}" | sort | uniq -c | sort -rn | head -40 | awk "{if (\\$1 > ${IPECONFIG[THRESHOLD]}) print \\$2}"`
do
# do something
done
答案1
Grep 在命令行上接受多个文件名。您的 shell 参数扩展实际上会执行此操作。如果您运行,ls -l ${IPECONFIG[APACHELOGFILE]}
您将看到该搜索显示了多少个文件。
您可以按如下方式组合 grep 操作:
grep "$TERM" ${IPECONFIG[APACHELOGFILE]} ${IPECONFIG[APACHESSLLOGFILE]}"