我有三个函数可以消化access.log
我服务器上的文件。
hitsbyip() {
cat $ACCESSLOG | awk '{ print $1 }' | uniq -c | sort -nk1 | uniq
}
hitsbyhour() {
cat $ACCESSLOG | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":00"}' | sort -n | uniq -c
}
hitsbymin() {
hr=$1
grep "2015:${hr}" $ACCESSLOG | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c
}
单独使用时,它们都可以正常工作。所有三个输出 2 小列数据。
现在我正在寻找创建另一个名为的函数report
,它将简单地使用printf
它的格式化可能性来打印带有标题的 3 列数据,每列都是我的三个第一个函数的结果。像这样的东西:
report() {
printf "%-30b %-30b %-30b\n" `hitsbyip` `hitsbyhour` `hitsbymin 10`
}
问题是格式不是我想要的;它水平打印列而不是并排打印。
任何帮助将不胜感激。