Awk常用用法有哪些-創(chuàng)新互聯(lián)

Awk常用用法有哪些,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站設(shè)計(jì)等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:酒店設(shè)計(jì)等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致表揚(yáng)!

 awk

語法:

awk [option] 'pattern {action}' file

參數(shù)選項(xiàng)

 -F 指定字段分隔符

-v 定義或者修改一個(gè)awk內(nèi)部的變量

使用范例

[root@db1 ~]# cat  -n  passwd

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

     2 bin:x:1:1:bin:/bin:/sbin/nologin

     3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

     4 adm:x:3:4:adm:/var/adm:/sbin/nologin

     5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

     6 sync:x:5:0:sync:/sbin:/bin/sync

     7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

     8 halt:x:7:0:halt:/sbin:/sbin/halt

     9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

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

顯示文件第5行

root@db1 ~]#  awk 'NR==5' passwd

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

顯示文件2-6行

[root@db1 ~]#  awk 'NR==2,NR==6' passwd

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

給文件顯示行號(hào)

awk '{print NR,$0}' passwd

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

2 bin:x:1:1:bin:/bin:/sbin/nologin

3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

4 adm:x:3:4:adm:/var/adm:/sbin/nologin

5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

6 sync:x:5:0:sync:/sbin:/bin/sync

7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

8 halt:x:7:0:halt:/sbin:/sbin/halt

9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

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

顯示文件第2行到第6行,并顯示行號(hào)

# awk 'NR==2,NR==6 {print NR, $0}' passwd

2 bin:x:1:1:bin:/bin:/sbin/nologin

3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

4 adm:x:3:4:adm:/var/adm:/sbin/nologin

5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

6 sync:x:5:0:sync:/sbin:/bin/sync

顯示文件的第一列和最后一列

# awk -F ":" '{print $1,$NF}' passwd

root /bin/bash

bin /sbin/nologin

daemon /sbin/nologin

adm /sbin/nologin

lp /sbin/nologin

sync /bin/sync

shutdown /sbin/shutdown

halt /sbin/halt

mail /sbin/nologin

operator /sbin/nologin

用gsub函數(shù)把文件中的/sbin/nologin替換為/bin/bash

 gsub("替換對(duì)象","替換成什么內(nèi)容",哪一列)

# awk '{gsub("/sbin/nologin","/bin/bash",$0); print $0}' passwd

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

bin:x:1:1:bin:/bin:/bin/bash

daemon:x:2:2:daemon:/sbin:/bin/bash

adm:x:3:4:adm:/var/adm:/bin/bash

lp:x:4:7:lp:/var/spool/lpd:/bin/bash

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/bin/bash

operator:x:11:0:operator:/root:/bin/bash

取出網(wǎng)卡的IP地址:

root@db1 ~]#  ifconfig  ens33

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.1.210  netmask 255.255.255.0  broadcast 192.168.1.255

        inet6 fe80::20c:29ff:fe66:629a  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:66:62:9a  txqueuelen 1000  (Ethernet)

        RX packets 23839  bytes 2151619 (2.0 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 272  bytes 19255 (18.8 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# ifconfig ens33|awk -F "(inet)|(netmask)" 'NR==2{print $2}'

 192.168.1.210  

說明:以(inet)|(netmask)為分隔符

# ifconfig ens33|awk -F " " 'NR==2{print $2}'

192.168.1.210

說明:以空格為分隔符

取出用戶名

# awk -F ":"  '{print $1}' passwd

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

operator

取出用戶名后排序

#  awk -F ":"  '{print $1}' passwd|sort

abrt

adm

admin

apache

avahi

bin

chrony

cockpit-ws

colord

去重計(jì)數(shù)

awk -F ":"  '{print $NF}' passwd|sort|uniq -c

# awk -F ":"  '{print $NF}' passwd|sort|uniq -c

     10 /bin/bash

      1 /bin/sync

      1 /sbin/halt

     43 /sbin/nologin

      1 /sbin/shutdown

第2種方法

創(chuàng)建數(shù)組

# awk -F ":"  '{hotel[$NF]}' passwd

# awk -F ":"  '{hotel[$NF];print $NF}' passwd

開始統(tǒng)計(jì)

# awk -F ":"  '{hotel[$NF]++;print $NF,hotel[$NF]}' passwd

# awk -F ":"  '{hotel[$NF]++}END{for(domain in hotel)print domain,hotel[domain]}' passwd

/bin/sync 1

/bin/bash 10

/sbin/nologin 43

/sbin/halt 1

/sbin/shutdown 1

行號(hào)小于3的行

# awk 'NR < 3 {print $0}' passwd

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

bin:x:1:1:bin:/bin:/sbin/nologin

以root開頭的行

 awk '/^root/{print $0}' passwd

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

第3到第6行

# awk 'NR>3 && NR<=6 {print $0}'  passwd

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

文件前打印aaa bbb,文件結(jié)束尾部打印ccc ddd

awk 'BEGIN{print "aaa","bbb"} {print $1,$2} END{print "ccc","ddd"}' passwd

awk -F ":" '{ if($3 < 500) { print $1,"system user"} else{ print $1,"putong user" } }'  /etc/passwd

root system user

bin system user

daemon system user

adm system user

lp system user

sync system user

shutdown system user

awk 'BEGIN{ for( i=1;i<=6;i++ ){ print i } }'

awk -v i=1 'BEGIN{ while(i<=5){print i;i++} }'

看完上述內(nèi)容,你們掌握Awk常用用法有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

本文標(biāo)題:Awk常用用法有哪些-創(chuàng)新互聯(lián)
標(biāo)題URL:http://muchs.cn/article48/eggep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)App設(shè)計(jì)、域名注冊(cè)

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)