我在crontab中创建了脚本,该脚本每隔30分钟创建一个带有星号中脱机对等项列表的文件:
now=$(date +"%Y%m%d%H%M")
/usr/sbin/asterisk -rx 'sip show peers' | grep "Unspec" | sed 's/[/].*//' >> /var/log/asterisk/offline/offline_$now
我需要解析theese文件并查找始终处于脱机状态的扩展名,即在不变的文件中查找。
我该怎么做?
输出是:
/usr/sbin/asterisk -rx 'sip show peers' | grep "Unspec" | sed 's/[/].*//' | tail -3
891
894
899
ls /var/log/asterisk/offline/
offline_201309051400 offline_201309051418 offline_201309051530 offline_201309051700
offline_201309051830 offline_201309052000 offline_201309052130
offline_201309051405 offline_201309051430 offline_201309051600 offline_201309051730
offline_201309051900 offline_201309052030 offline_201309052200
offline_201309051406 offline_201309051500 offline_201309051630 offline_201309051800
offline_201309051930 offline_201309052100 offline_201309052230
答案 0 :(得分:0)
这个awk脚本将打印所有文件中的行:
awk 'FNR==1{f++}{a[$0]++}END{for (i in a) if (a[i]==f) print i}' offline_*
工作原理:
FNR==1{f++}
我们计算解析的文件数(FNR等于每个文件第一行的一个){a[$0]++}
我们计算每行出现的次数。END
块打印已找到f次的数组元素。