1.输入:一个文本文件,第一行是一个数字n,其他每行分别是一个单词以及它出现的百分比。
awk解字符串问题
原创
©著作权归作者所有:来自51CTO博客作者aboocool的原创作品,请联系作者获取转载授权,否则将追究法律责任
输出:输出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://p_w_picpath.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<num){maxstr=str;max=num;}}else{str=$0;num=1;}}END{print "The line is ", maxstr, " with ", max, " times";}'
找到重复最多的单词
把单词变成行即可
sed 's/\( \|\t\)/\n/g file | tr -s '\n'
上一篇:用init启动服务
下一篇:Learning Perl 1
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java-长字符串加密
加密:为你的长字符串提供最高级别的保护!!!
加密算法 JAVA -
分解字符串
通过指定的字符串将字符串切割成数组
切割 字符串