面试题集-linux

1、写一个 查找一个log文件中,每个ip地址出现了多少次 的shell脚本,使用awk命令实现查找。如果这个文件很大,上了10g怎么办?
(1) awk的用法
awk 'BEGIN{ commands } pattern{ commands } END{ commands }'
第一步:运行BEGIN{ commands }语句块中的语句。
第二步:从文件或标准输入(stdin)读取一行。然后运行pattern{ commands }语句块,它逐行扫描文件,从第一行到最后一行反复这个过程。直到文件所有被读取完成。
第三步:当读至输入流末尾时,运行END{ commands }语句块。
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

awk '{a[$1]+=1;} END {for(i in a){print a[i]" "i;}}' access_log.txt

你可能感兴趣的:(linux)