首页 > 系统服务 > 详细

shell命令练习 20160425

时间:2016-04-26 07:10:47      阅读:232      评论:0      收藏:0      [点我收藏+]

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!