Я хочу создать сценарий, который будет хранить выходные данные в текстовом файле, но источник, из которого я извлекаю, меняет имя на один / несколько символов каждый день (согласно календарю).
Как мне создать скрипт, который поможет мне каждый день искать следующий файл в строке или искать его по дате создания?
Команда выглядит следующим образом:
cat /etc/xxxx/logs/app_20151002.log | grep "IP address " |
awk '{print $10}' | uniq -c | sort -rnk1 |
awk '{print $2}' | tr "," " " | uniq -c |
grep -v "0.0.0.0" | >> /home/output.txt
Завтра файл журнала будет app_20151003.log
и т. Д.
Вы имеете в виду это?
cat /etc/xxxx/logs/app_$(date +%Y%m%d).log | grep "IP address " |
awk '{print $10}' | uniq -c | sort -rnk1 | awk '{print $2}' |
tr "," " " | uniq -c | grep -v "0.0.0.0" | >> /home/output.txt
Объяснение:
date +%Y%m%d
возвраты текущая дата (как понято к текущему времени хоста), в формате YYYYMMDD
, который Вы, кажется, хотите. $()
часть является полезным макросом удара, который создает подоболочку, выполняет команды между круглыми скобками и возвращает stdo в исходную команду.