awk--练习笔记

awk:
[root@oracle shellscript]# more df_h.txt
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.7G  2.4G  6.9G  26% /
/dev/sda3              25G  7.0G   16G  31% /u01
tmpfs                 2.0G     0  2.0G   0% /dev/shm

#awk 可以格式化文本,然后可以利用column -t美化.

[root@oracle shellscript]# awk 'BEGIN{print "磁盘","大小"}{print $1,$2}' df_h.txt |column -t
磁盘        大小
Filesystem  Size
/dev/sda1   9.7G
/dev/sda3   25G
tmpfs       2.0G


#NR 可以输出记录数

[root@oracle shellscript]# awk '{print NR,$0}' df_h.txt
1 Filesystem            Size  Used Avail Use% Mounted on
2 /dev/sda1             9.7G  2.4G  6.9G  26% /
3 /dev/sda3              25G  7.0G   16G  31% /u01
4 tmpfs                 2.0G     0  2.0G   0% /dev/shm

#FS改变输入域分隔符,if可以按条件输出

[root@oracle shellscript]# awk -v FS=":" '{if (($1=="root"))print $1,$2}' /etc/passwd
root x

#OFS指定输出域分隔符

[root@oracle shellscript]# awk -v OFS="*" -v FS=":" '{if (($1=="root"))print $1,$2}' /etc/passwd
root*x



[root@oracle shellscript]# awk '{print NR,NF,$0}' df_h.txt


1 7 Filesystem            Size  Used Avail Use% Mounted on
2 6 /dev/sda1             9.7G  2.4G  6.9G  26% /
3 6 /dev/sda3              25G  7.0G   16G  31% /u01
4 6 tmpfs                 2.0G     0  2.0G   0% /dev/shm




[root@oracle shellscript]# more englist_statment.txt 
First Flight
  Mr. Johnson had never been up in an aerophane before and he had read a lot about air accidents, so one day when a friend offered to take him for a ride i
n his own small phane, Mr. Johnson was very worried about accepting. Finally, however, his friend persuaded him that it was very safe, and Mr. Johnson boarde
d the plane.
  His friend started the engine and began to taxi onto the runway of the airport. Mr. Johnson had heard that the most dangerous part of a flight were the t
ake-off and the landing, so he was extremely frightened and closed his eyes.
  After a minute or two he opened them again, looked out of the window of the plane, and said to his friend, Look at those people down there. They look as 
small as ants, dont they?
  Those are ants, answered his friend. Were still on the ground

[root@oracle shellscript]# awk -v RS=" " '{print $0}' englist_statment.txt
First
Flight
  Mr.
Johnson
had
never
been
up
in
an




awk '{if(NR==2)print $0}' df_h.txt


awk -v FS=":" '{if($3<=500){print $1} else{print $0}}' /etc/passwd



[root@oracle shellscript]# awk 'BEGIN{ for (i=1;i<=10;i++ ){print i}}'
1
2
3
4
5
6
7
8
9
10


[root@oracle shellscript]# awk -v i=1 'BEGIN{while(i<5){print i;i++}}'
1
2
3
4


do while:每次循环都会执行do后面的.

[root@oracle shellscript]# awk -v i=1 'BEGIN{do {print "test";i++} while(i<5)}'
test
test
test
test





[root@oracle shellscript]# awk 'BEGIN{for ( i=1;i<=5;i++) {if(i==3){continue} ;print i} }'
1
2
4
5

[root@oracle shellscript]# awk 'BEGIN{for ( i=1;i<=5;i++) {if(i==3){break} ;print i} }'
1
2


continue 是跳出本次循环,break 是跳出整个循环.


next是对满足条件的行不进行处理.

[root@oracle shellscript]# awk '{ if(NR==1){next}print NR,$1}' df_h.txt
2 /dev/sda1
3 /dev/sda3
4 tmpfs








 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值