Мой код ищет слово в двух файлах журнала, но, как мне показалось, неэффективным. Кто-нибудь знает лучший способ?

     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 ответ1

1

Grep принимает несколько имен файлов в командной строке. Ваше расширение параметров оболочки на самом деле будет делать это. Если вы запустите ls -l ${IPECONFIG[APACHELOGFILE]} вы увидите, сколько файлов появилось в результате этого поиска.

Вы можете комбинировать ваши операции grep как таковые:

grep "$TERM" ${IPECONFIG[APACHELOGFILE]} ${IPECONFIG[APACHESSLLOGFILE]}"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .