Linux系统
文件每行按第二列去重并打印第二列不同的值及出现次数:awk -F'\t' '{a[$2]+=1}END{for(x in a) print x'\t'a[x]}' a
求两个文件中第一列数据的交集:假设文件名为a和b,文件每行用\t分隔awk -F'\t' 'ARGIND==1{a[$1]=1}ARGIND==2{if($1 in a) print}' a b其中:-F表示指定每行的分隔符ARGIND==1表示处理第一个文件
把文件中包含china的行打印出来:grep 'china' a把文件中以china字符串起始的行打印出来:grep '^china' a
把文件中出现在abc和xx之间的字符串打印出来:grep -o -P '(?<=abc).*?(?=xx)' a
对文件先按第二列排序,再按第三列排序,每列之间用空格分开:sort -t' ' +1 -2 +2 -3 file
统计accesslog日志中的各ip出现次数,并按次数从小到大排序:awk '{a[$1]+=1}END{for(x in a) print x,a[x]}' file | sort +1rg -2 > file.output
文件中包含有china的行数:grep 'china' file | wc -l
查看线上实时滚动日志中带有warning的日志:tail -f file.log | grep 'warning'
对一个100w行的文件A随机取100行:cat A | shuf -n 100
在/home目录下面查询以.log结尾的文件并统计文件总大小:find /home -name *.log | xargs du -s | awk '{print;sum+=$1}END{print sum}'删除/home目录下面的所有.svn文件:find /home -name .svn | xargs rm -rf