码迷,mamicode.com
首页 > 系统相关 > 详细

shell命令练习 20160425

时间:2016-04-26 07:11:53      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:sed   awk   xargs   

1、用三种方式实现删除文件最后一行。

[root@makeISO sjx]# cat 123
1
2
3
[root@makeISO sjx]# sed ‘$d‘ 123
1
2
[root@makeISO sjx]# cat 123 |head -$[$(cat 123|wc -l)-1]
1
2
[root@makeISO sjx]# cat 123 |sed -n ‘$!p‘
1
2

2、使用三种方式实现生成3*3的矩阵。

[root@makeISO sjx]# for ((y=0;y<3;y++));do for ((i=0;i<3;i++)) ;do echo -n "* ";done ;echo ;done
* * * 
* * * 
* * * 
[root@makeISO sjx]# seq 3 |awk ‘{for(i=1;i<=3;i++){printf "%s ","*"}{printf "\n"}}‘
* * * 
* * * 
* * * 

[root@makeISO sjx]# awk ‘BEGIN{for(i=1;i<=3;i++){for(y=1;y<=3;y++){printf "%s ","*"}{printf "\n"}}}‘
* * * 
* * * 
* * *



3、使用三种方式实现获取IP地址。

[root@makeISO sjx]# ifconfig |grep ‘inet addr‘ |sed ‘s/:/ /‘ |awk ‘{print $3}‘
10.12.29.253
127.0.0.1
[root@makeISO sjx]# ifconfig |grep ‘inet addr‘ |grep -o ‘\<[[:digit:]].*[[:digit:]]\>‘ | awk ‘{print $1}‘
10.12.29.253
127.0.0.1
[root@makeISO sjx]# ip addr show |grep ‘\<inet\>‘ |sed ‘s/\// /‘ |awk ‘{print $2}‘
127.0.0.1
10.12.29.253

4、seq 10 然后没三个一行逗号分隔答应出来,用三种方式实现,结果类似:
1,2,3
3,4,5
5,6,7
7,8,9
9,10

[root@makeISO sjx]# for ((i=1;i<10;i+=2));do seq 10 |sed -n ‘‘$i‘,+2p‘|xargs |sed ‘s/ /,/g‘;done
1,2,3
3,4,5
5,6,7
7,8,9
9,10

[root@makeISO sjx]# for ((i=1;i<10;i+=2));do seq 10 |sed -n ‘‘$i‘,+2p‘|awk ‘{printf "%s ",$1}END{printf "\n"}‘ |sed ‘s/ /,/g‘;done |sed ‘$s/,$//‘
1,2,3,
3,4,5,
5,6,7,
7,8,9,
9,10

[root@makeISO sjx]# seq 10 | xargs |awk ‘{for(i=1;i<10;i+=2) {printf "%s,%s,%s\n",$i,$(i+1),$(i+2)}}‘ |sed ‘$s/,$//‘
1,2,3
3,4,5
5,6,7
7,8,9
9,10


5、使用awk打印空心三角形,结果类似如下:
*
**
* *
*  *
*   *
*    *
*     *
*      *
*       *
**********

[root@makeISO sjx]# awk  ‘BEGIN{{printf "%s\n","*"}for(i=1;i<10;i++){{printf "%s","*"}for(y=1;y<=i;y++)if(y<i){printf "%s"," "}else{printf "%s\n","*"}}{for(z=1;z<=12;z++)if(z<12){printf "%s","*"}{printf "\n"}}}‘
*
**
* *
*  *
*   *
*    *
*     *
*      *
*       *
*        *
***********


6、用三种方式echo -e ‘123 123\naaa          bbb‘ 把输出结果格式化成如下:
123  123
aaa  bbb

[root@makeISO sjx]# echo -e ‘123 123\naaa          bbb‘ |awk ‘{print $1,$2}‘
123 123
aaa bbb
[root@makeISO sjx]# echo -e ‘123 123\naaa          bbb‘ |awk ‘{printf "%s %s\n",$1,$2}‘
123 123
aaa bbb
[root@makeISO sjx]# echo -e ‘123 123\naaa          bbb‘ | sed ‘s/[[:space:]][[:space:]]\+/ /g‘
123 123
aaa bbb
[root@makeISO sjx]# echo -e ‘123 123\naaa          bbb‘ | sed ‘s/[^[:alnum:]][^[:alnum:]]\+/ /g‘
123 123
aaa bbb


shell命令练习 20160425

标签:sed   awk   xargs   

原文地址:http://www1707.blog.51cto.com/1184226/1767703

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!