Bash shell脚本练习(二)

时间:2021-09-29 21:37:59

 以下练习题目来源于互联网:

练习一: a b c dd  xxxxx1 dd  xxxxxxxx2 dd xxxxxxxxx3 dd   xxxxxxxx4  写个shell脚本,搜索到以dd开头的第1行和第3行将其前面加个#注释,并在第3行后面添加3行aa1,aa2,aa3....  方法一: [root@shell ~/sedawk]# sed -e '/1/s/^/#/' -e /3/s/^/#/ -e '/3/a aa1\naa2\naa3' text.txt  a b c #dd  xxxxx1 dd  xxxxxxxx2 #dd xxxxxxxxx3 aa1 aa2 aa3 dd   xxxxxxxx4    方法二: [root@shell ~/sedawk]# sed -e '/1/s/dd/\#dd/' -e '/3/s/dd/\#dd/' -e '/4/iaa1\naa2\naa3' cto.txt  a b c #dd  xxxxx1 dd  xxxxxxxx2 #dd xxxxxxxxx3 aa1 aa2 aa3 dd   xxxxxxxx4    练习二:通过Apache访问日志access.log 统计IP和每个地址访问的次数,按从大到小前10名 [root@shell ~/sedawk]# cat httpd.log | awk '{print $1}' | sort | uniq -c | sort -r    375 192.168.209.129    270 192.168.209.1    154 192.168.209.130 练习三:如有一文件,test.txt,内容如下: http://www.5566.cn/produce/20070804112/315613171.shtmlhttp://bj.5566.cn/produce/20070804112/31581217.shtmlhttp://sz.5566.cn/produce/2008090412/31581247.shtml 要求如下:将http://*.5566.cn/替换成/home/html/www.5566.cn,要求用sed [root@shell ~/sedawk]# sed -n 's/http.*\.cn/home\/html\/www.5566.cn/gp' url.txt home/html/www.5566.cn/produce/20070804112/315613171.shtmlhome/html/www.5566.cn/produce/20070804112/31581217.shtmlhome/html/www.5566.cn/produce/2008090412/31581247.shtml 练习四:[root@shell ~/sedawk]# cat ip.txt 192.168.1.2/24167.178.1.3/24212.121.1.3/24192.168.1.2/24167.178.1.3/24212.121.1.3/24123.124.122.121/24123.124.122.121/24编写脚本将其前面添加入“abcd”并将 /去掉然后以排序汇总 [root@shell ~/sedawk]# sed 's#/#  #g' ip.txt|sed 's/^/abcd/g'|sort -r|uniq -c        2 abcd212.121.1.3  24      2 abcd192.168.1.2  24      2 abcd167.178.1.3  24      2 abcd123.124.122.121  24  

本文出自 “网络收藏夹” 博客,请务必保留此出处http://liyaoyi.blog.51cto.com/442933/824528