内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

awk命令(1)

一、awk的優(yōu)點(diǎn)和缺點(diǎn):

為潮南等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及潮南網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站制作、潮南網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

優(yōu)點(diǎn):1.awk用來(lái)取列,單獨(dú)取列簡(jiǎn)單方便

      2.awk支持正則表達(dá)式

      3.awk支持變量

      4.awk支持&&和||

      5.awk支持流程控制語(yǔ)句,如if 和if/else 條件控制

      6.awk支持循環(huán),如while、do-while和for循環(huán)

      7.awk支持用于跳轉(zhuǎn)或者退出的命令break、continue、next 和exit等

      8.awk支持函數(shù)

缺點(diǎn):awk功能強(qiáng)大,相對(duì)來(lái)說(shuō)較復(fù)雜

二、awk的命令格式:

awk '條件1 {動(dòng)作1} 條件2 {動(dòng)作2}...' file.txt

三、awk的用法:

1.打印匹配root的行

[root@localhost ~]# awk '/root/' /etc/passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

2.-F選項(xiàng)的作用

2.1以冒號(hào)分隔,打印第一列數(shù)據(jù);不加-F選項(xiàng),默認(rèn)是空格,冒號(hào)可以自定義

[root@localhost ~]# awk -F: '{print $1,$3,$5,$7}'  /etc/passwd

root 0 root /bin/bash

bin 1 bin /sbin/nologin

daemon 2 daemon /sbin/nologin

...

2.2 -F自定義分隔符,分隔數(shù)據(jù)

[root@localhost ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

                       57G  7.2G   47G  14% /

/dev/sda1              99M   12M   82M  13% /boot

tmpfs                 252M     0  252M   0% /dev/shm

[root@localhost ~]#  df -h |grep /$ |awk '{print $4}' |awk -F"%" '{print $1}' 

14

2.3cut命令同樣實(shí)現(xiàn)

[root@localhost ~]#  df -h |grep /$ |awk '{print $4}' |cut -d"%" -f 1 

14

2.4打印列的時(shí)候,逗號(hào)來(lái)分隔列

[root@localhost ~]# awk -F: '/root/{print $1 $3 $5 $7}' /etc/passwd

root0root/bin/bash

operator11operator/sbin/nologin

[root@localhost ~]# awk -F: '/root/{print $1,$3,$5,$7}' /etc/passwd

root 0 root /bin/bash

operator 11 operator /sbin/nologin

2.5打印列的時(shí)候,#來(lái)分隔列

[root@localhost ~]# awk -F: '/root/ {print $1"###"$7"###"$3}' /etc/passwd

root###/bin/bash###0

operator###/sbin/nologin###1

3.BEGIN和END的用法

3.1BEGIN的用法

[root@localhost ~]# df -h |grep /$ |awk '{print $4}' |awk -F"%" 'BEGIN{print "root_usage!"} {print $1}' 

root_usage!

14

3.2BEGIN和END一起用,\n用來(lái)?yè)Q行

[root@localhost ~]# df -h |grep /$ |awk '{print $4}' |awk -F"%" 'BEGIN{print "\nroot_usage!"  "\n==========="} {print $1}  END{print"==========="}' 

root_usage!

===========

14

===========

4.FS、OFS、NR、NF的用法 

4.1FS等同于-F,以冒號(hào)分隔列

[root@localhost ~]# awk  'BEGIN{FS=":"} /root/ {print $1,$3,$5,$7}' /etc/passwd

root 0 root /bin/bash

operator 11 operator /sbin/nologin

4.2OFS改變默認(rèn)分隔符,用#號(hào)分隔列

[root@localhost ~]# awk  -F: 'BEGIN{OFS="###"} /root/ {print $1,$3,$5,$7}' /etc/passwd

root###0###root###/bin/bash

operator###11###operator###/sbin/nologin

-v選項(xiàng)也可以實(shí)現(xiàn)

[root@localhost ~]#  awk  -F: -v OFS="###" '/root/ {print $1,$3,$5,$7}' /etc/passwd

root###0###root###/bin/bash

operator###11###operator###/sbin/nologin

4.3分號(hào)的用法

[root@localhost ~]# awk 'BEGIN {FS=":";OFS="#"} /root/ {print $1,$7}' /etc/passwd

root#/bin/bash

operator#/sbin/nologin

4.4NR用來(lái)打印行號(hào),而且列可以自定義位置打印

[root@localhost ~]# awk -F: '/root/ {print NR,$1,$7,$5,$3}' /etc/passwd

1 root /bin/bash root 0

12 operator /sbin/nologin operator 11

[root@localhost ~]# awk '/root/ {print NR,$0}' /etc/passwd

1 root:x:0:0:root:/root:/bin/bash

12 operator:x:11:0:operator:/root:/sbin/nologin

4.5打印空行

[root@localhost ~]#awk '/^$/{print NR}' /etc/passwd

4.6這兩個(gè)命令等效,但grep的效率更高

[root@localhost ~]# awk '/root/ {print NR,$0}' /etc/passwd

1 root:x:0:0:root:/root:/bin/bash

12 operator:x:11:0:operator:/root:/sbin/nologin

[root@localhost ~]# grep -n 'root' /etc/passwd

1:root:x:0:0:root:/root:/bin/bash

12:operator:x:11:0:operator:/root:/sbin/nologin

4.7NF用來(lái)打印列數(shù),NF打印出有7列,$NF打印出最后一列

[root@localhost ~]# awk -F: '/root/ {print NR,NF,$NF,$0}' /etc/passwd

1 7 /bin/bash root:x:0:0:root:/root:/bin/bash

12 7 /sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin

5.awk中的比較

<

<=

>

>=

== 等于

!=不等于

~匹配

!~不匹配

5.1打印大于等于37行的第一列

[root@localhost ~]#  awk -F: 'NR>=37 {print NR,$1}' /etc/passwd

37 xfs

38 gdm

39 pegasus

40 oracle

5.2打印大于等于60的第四列

[root@localhost shell]#cat awk.txt 

1    80 1  li

2  60   2  wang

3  70   3  zhang

4  10     4  zhao

[root@localhost shell]# awk '$2>=60 {print $4}' awk.txt

li

wang

zhang

5.3打印第一列匹配root的字段

[root@localhost ~]# awk -F: '$1=="root" {print $1,$3,$5,$7}' /etc/passwd

root 0 root /bin/bash

5.4打印全文匹配root的字段

[root@localhost ~]# awk -F: '$0~/root/ {print NR,$1,$7,$5,$3}' /etc/passwd

1 root /bin/bash root 0

12 operator /sbin/nologin operator 11

5.5打印第六列匹配root的字段

[root@localhost ~]# awk -F: '$6 ~/root/{print $1,$5,$6}' /etc/passwd

root root /root

operator operator /root

5.6打印第七行到第十二行中的字段

[root@localhost /]# awk -F : 'NR==7,NR==12 {print NR,$1,$7}' /etc/passwd

7 shutdown /sbin/shutdown

8 halt /sbin/halt

9 mail /sbin/nologin

10 news 

11 uucp /sbin/nologin

12 operator /sbin/nologin

6.if判斷

6.1第一列等于root就打印

[root@localhost ~]# awk -F: '{if($1=="root")print $0}' /etc/passwd

root:x:0:0:root:/root:/bin/bash

6.2打印第一列匹配oracle的行

[root@localhost ~]# cat /etc/passwd |awk '{if($1 ~ "oracle") print NR,$0}'

40 oracle:x:500:501::/home/oracle:/bin/bash

6.3打印最后一列匹配bash的行

[root@localhost ~]# awk -F: '{if($NF~/bash/)  print NR,$1,$NF}' /etc/passwd

1 root /bin/bash

31 postgres /bin/bash

35 MySQL /bin/bash

40 oracle /bin/bash

網(wǎng)站標(biāo)題:awk命令(1)
URL標(biāo)題:http://www.rwnh.cn/article4/psgeoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站服務(wù)器托管、響應(yīng)式網(wǎng)站電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
苏尼特右旗| 湖口县| 黔西县| 惠州市| 桂东县| 三河市| 大化| 轮台县| 吉林市| 五常市| 南岸区| 治县。| 松原市| 闻喜县| 渑池县| 鲜城| 平乐县| 恩施市| 湘潭县| 乌拉特前旗| 杭锦后旗| 东明县| 金坛市| 郑州市| 赤峰市| 中牟县| 开原市| 库伦旗| 博爱县| 马山县| 吉木萨尔县| 平遥县| 昌吉市| 清丰县| 确山县| 乐业县| 高青县| 商河县| 清苑县| 会理县| 陵水|