1.输入:一个文本文件,第一行是一个数字n,其他每行分别是一个单词以及它出现的百分比。
输出:输出n个单词,每个单词出现的几率符合它的百分比。
awk ‘BEGIN{sum=0;}1{n=$0}2,${up=sum+$1;while(sum<$1){arr[sum]+=$2;
sum++;}if(i>100){exit 1;}}END{while(–n>0){print arr[rand()%100];}’
2. 替换字符串
修改test.txt的23行将test换成ttes
sed ’23s/test/tset/g’ test.txt
Cat test.txt| awk ‘NR==23{gsub(/test/,”tset”);print $0}’
3.统计域名的出现次数
文件有如下若干行
http://www.baidu.com/index.html
http://image.baidu.com/index.html
http://www.baidu.com/index.html
http://www.baidu.com/index.html
http://map.baidu.com/index.html
http://tieba.baidu.com/index.html
http://map.baidu.com/index.html
http://www.baidu.com/index.html
统计每个域名出现次数,并按由多到少排序
4 www.baidu.com
2 map.baidu.com
……
awk -F’\/’ ‘{arr[$3]++;}END{for(item in arr){print arr[item], item}}’ test | sort -k1nr
4. 找到重复最多的行
sort file | awk ‘BEGIN{str=””;num=0;maxstr=””;max=0;}{if(str==$0){num++;if(max
--友情转载