У меня есть простая функция, которая выдаст мне журнал за один час
past_hour_log(){
awk -v Date1=$(date -d"now 1 hour ago" "+%H:%M:%S") -v Date2=$(date -d"now 1 hour ago" "+%d") ' { if ($3 > Date1 && $2 >= Date2) {print $0}} ' /var/log/syslog
}
Моя функция Вывод:
Oct 9 12:15:15 localhost-IdeaPad-980 systemd[1]: time has been changed
Oct 9 12:16:00 localhost-IdeaPad-980 systemd[1534]: time has been changed
Oct 9 12:17:00 localhost-IdeaPad-980 systemd-timesyncd[25237]: Synchronized to time server 91.189.91.157:123 (ntp.ubuntu.com).
Oct 9 12:17:01 localhost-IdeaPad-980 CRON[27685]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 9 12:17:01 localhost-IdeaPad-980 CRON[29613]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Итак, на следующей строке я пытаюсь передать этоФункция выводит в grep xargs, чтобы получить общее количество строк, заданных в качестве входных данных из input.txt
TIME_COUNT="$(cat input.txt | xargs -I{} grep {} past_hour_log | awk '{print $7}' | awk -F '?' '{print $1}' | uniq -c)"
Но результат показан ниже.Есть какие-нибудь идеи для этого?
grep: past_hour_log: Нет такого файла или каталога