免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      Linux文本處理工具:AWK的妙用

      在平時(shí)的工作中,會(huì)涉及到很多腳本的編寫(xiě)及文本的處理,學(xué)好awk可以使你寫(xiě)的腳本看起來(lái)更高級(jí),而且涉及到大本文的時(shí)候效率也會(huì)更高哦,快點(diǎn)贊來(lái)學(xué)習(xí)吧!評(píng)論可獲得作者精心整理的大廠awk面試相關(guān)題目一份

      AWK的基本格式

      awk [options] ‘program’ file…注釋:program->pattern{action statements;..}pattern和action:pattern部分決定動(dòng)作語(yǔ)句何時(shí)觸發(fā)及觸發(fā)事件(BEGIN,END)action statements對(duì)數(shù)據(jù)進(jìn)行處理,放在{}內(nèi)指明(print, printf)

      awk工作原理:

      第一步:執(zhí)行BEGIN{action;… }語(yǔ)句塊中的語(yǔ)句第二步:從文件或標(biāo)準(zhǔn)輸入(stdin)讀取一行,然后執(zhí)行pattern{ action;… }語(yǔ)句塊,它逐行掃描文件,從第一行到最后一行重復(fù)這個(gè)過(guò)程,直到文件全部被讀取完畢。第三步:當(dāng)讀至輸入流末尾時(shí),執(zhí)行END{action;…}語(yǔ)句塊注意:pattern語(yǔ)句塊中的通用命令是最重要的部分,也是可選的。如果沒(méi)有提供pattern語(yǔ)句塊,則默認(rèn)執(zhí)行{ print },即打印每一個(gè)讀取到的行,awk讀取的每一行都會(huì)執(zhí)行該語(yǔ)句塊

      注意:awk程序通常由:BEGIN語(yǔ)句塊、能夠使用模式匹配的通用語(yǔ)句塊、END語(yǔ)句塊,共3部分組成。BEGIN語(yǔ)句塊和END語(yǔ)句塊分別為文家處理前和處理后執(zhí)行的語(yǔ)句段

      1)OPTIONS

      選項(xiàng)(options):

      -F指明輸入時(shí)用到的字段分隔符(默認(rèn)以空格為分隔符)-v var內(nèi)置變量|var=value: 自定義變量變量分為內(nèi)置變量和自定義變量:

      內(nèi)置變量:

      • FS:輸入字段分隔符,默認(rèn)為空白字符(與-F效果相同)

      [root@dashui ~]# awk -v FS=”:” ‘{print $1,$3}’ /etc/passwdroot 0bin 1daemon 2

      • OFS:輸出字段分隔符,默認(rèn)為空白字符

      [root@dashui ~]# awk -v FS=”:” -v OFS=”*” ‘{print $1,$3}’ /etc/passwdroot*0bin*1daemon*2

      • RS:輸入記錄分隔符,指定讀入時(shí)的換行符,原換行符仍有效

      [root@dashui ~]# awk -v RS=’ ‘ ‘{print}’ hah //指定讀入時(shí)的分割符,只要出現(xiàn)空格就被換行nihaoahahaiamfanin[root@dashui ~]# cat hah nihao a hahai amfanin

      • ORS:輸出記錄分隔符,輸出時(shí)用指定符號(hào)代替換行符

      [root@dashui ~]# cat hah nihao a hahai amfanin[root@dashui ~]# awk -v ORS=’=== ‘ ‘{print}’ hah //指定輸出分隔符為===,所以原來(lái)?yè)Q行被替換成===nihao a haha=== i amfanin=== [root@dashui ~]#

      • NF:字段數(shù)量

      [root@dashui ~]# awk -F: ‘{print NF}’ /etc/passwd //以:為分隔符,每一行有幾個(gè)字段777

      • NR:行號(hào)(如果有多個(gè)文件,則行號(hào)統(tǒng)計(jì)在一起)

      [root@dashui ~]# awk ‘{print NR}’ hah12[root@dashui ~]# awk ‘{print NR}’ hah /etc/fstab //hah的行號(hào)和/etc/fstab的統(tǒng)計(jì)在了一塊 1234567891011121314

      • FNR:各文件分別計(jì)數(shù),行號(hào)

      [root@dashui ~]# awk ‘{print FNR}’ hah /etc/fstab 12123456789101112FILENAME:當(dāng)前文件名[root@dashui ~]# awk ‘{print FILENAME}’ hah //因?yàn)榍懊娴膒attern沒(méi)有寫(xiě),所以默認(rèn)每讀入一行,就執(zhí)行一次printhahhah[root@dashui ~]# cat hah nihao a hahai amfanin

      • ARGC:命令行參數(shù)的個(gè)數(shù)

      [root@dashui ~]# awk ‘{print ARGC}’ hah //其中第一個(gè)參數(shù)為awk ,第二個(gè)為 hah22

      • ARGV:數(shù)組,保存的是命令行所給定的各參數(shù)

      [root@dashui ~]# awk ‘{print ARGV[0]}’ hah //0是第一個(gè)參數(shù),1是第二個(gè)參數(shù)awkawk[root@dashui ~]# awk ‘{print ARGV[1]}’ hah hahhah

      • 自定義變量
      • (1) -v var=value變量名區(qū)分字符大小寫(xiě)(2) 在program中直接定義

      [root@dashui ~]# awk -v name=xiaoshui ‘BEGIN{print name}’xiaoshui[root@dashui ~]# awk ‘BEGIN{name=”xiaozhao”;print name}’xiaozhao 注意:自定義變量時(shí)需要加上雙引號(hào),不加的話可能會(huì)定義不成功,如下[root@dashui ~]# awk ‘BEGIN{name=xiaozhao;print name}'[root@dashui ~]# awk ‘BEGIN{name=”xiaozhao”;print name}’xiaozhao

      2)program

      program分為pattern和action

      pattern部分決定動(dòng)作語(yǔ)句何時(shí)觸發(fā)及觸發(fā)事件(BEGIN,END)action statements對(duì)數(shù)據(jù)進(jìn)行處理,放在{}內(nèi)指明(print, printf)(1)action(print、printf)

      Expressions:算術(shù),比較表達(dá)式等Control statements:if, while等Compound statements:組合語(yǔ)句input statementsoutput statements:print等

      print

      print格式:print item1, item2, …

      (1) 逗號(hào)分隔符(2) 輸出的各item可以字符串,也可以是數(shù)值;當(dāng)前記錄的字段、變量或awk的表達(dá)式(3) 如省略item,相當(dāng)于print $0

      [root@dashui ~]# awk -F : ‘{print $1,$3}’ /etc/passwdroot 0bin 1daemon 2[root@dashui ~]# awk -F : ‘{print $1,”xiaoshui”,$3}’ /etc/passwdroot xiaoshui 0bin xiaoshui 1daemon xiaoshui 2[root@dashui ~]# awk -F : ‘{print }’ /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin

      • printf

      格式化輸出:printf“FORMAT”, item1, item2, …(1) 必須指定FORMAT(2) 不會(huì)自動(dòng)換行,需要顯式給出換行控制符,(3) FORMAT中需要分別為后面每個(gè)item指定格式符

      格式符:與item一一對(duì)應(yīng)

      %c: 顯示字符的ASCII碼%d, %i: 顯示十進(jìn)制整數(shù)%e, %E:顯示科學(xué)計(jì)數(shù)法數(shù)值%f:顯示為浮點(diǎn)數(shù)%g, %G:以科學(xué)計(jì)數(shù)法或浮點(diǎn)形式顯示數(shù)值%s:顯示字符串%u:無(wú)符號(hào)整數(shù)%%: 顯示%自身

      修飾符:

      #[.#]:第一個(gè)數(shù)字控制顯示的寬度;第二個(gè)#表示小數(shù)點(diǎn)后精度,%3.1f-: 左對(duì)齊(默認(rèn)右對(duì)齊)%-15s+:顯示數(shù)值的正負(fù)符號(hào)%+d[root@dashui ~]# awk -F : ‘{printf “%s %d”,$1,$3 }’ /etc/passwd //如果不加默認(rèn)是不換行的root 0bin 1daemon 2

      (2)pattern

      • PATTERN:根據(jù)pattern條件,過(guò)濾匹配的行,再做處理

      (1)如果未指定:空模式,匹配每一行(2) /regular expression/:僅處理能夠模式匹配到的行,需要用/ /括起來(lái)

      [root@dashui ~]# awk ‘/^UUID/{print $1}’ /etc/fstab // 以UUID開(kāi)頭的行UUID=136f7cbb-d8f6-439b-aa73-3958bd33b05fUUID=bf3d4b2f-4629-4fd7-8d70-a21302111564UUID=cbf33183-93bf-4b4f-81c0-ea6ae91cd4f6UUID=5e11b173-f7e2-4994-95b9-55cc4c41f20b

      • relational expression: 關(guān)系表達(dá)式,結(jié)果有“真”有“假”,結(jié)果為“真”才會(huì)被處理

      真:結(jié)果為非0值,非空字符串假:結(jié)果為空字符串或0值

      [root@dashui ~]# awk ‘0{print $0}’ hah //因?yàn)榍懊鏋?,所以不執(zhí)行[root@dashui ~]# awk ‘!0{print $0}’ hah //與上面相反nihao a hahai amfanin[root@dashui ~]# awk -F: ‘$3==0{print $0}’ /etc/passwd //只有當(dāng)$3=0時(shí)候,才會(huì)執(zhí)行printroot:x:0:0:root:/root:/bin/bash

      • (4) line ranges:行范圍

      startline,endline:/pat1/,/pat2/不支持直接給出數(shù)字格式

      [root@dashui ~]# awk -F: ‘/^root>/,/^daemon>/{print}’ /etc/passwd //打印以root開(kāi)頭與以daemon開(kāi)頭的之間的行root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin[root@dashui ~]#

      • (5)(5) BEGIN/END模式

      BEGIN{}: 僅在開(kāi)始處理文件中的文本之前執(zhí)行一次END{}:僅在文本處理完成之后執(zhí)行一次

      [root@dashui ~]# awk ‘BEGIN{print “start”}{print $0}END{print “end”}’ hah //在開(kāi)始和結(jié)束時(shí)候分別打印start和endstartnihao a hahai amfaninend[root@dashui ~]# cat hahnihao a hahai amfanin


      AWK的操作

      • 算術(shù)操作符:

      x+y, x-y, x*y, x/y, x^y, x%y-x: 轉(zhuǎn)換為負(fù)數(shù)+x: 轉(zhuǎn)換為數(shù)值

      [root@dashui ~]# awk ‘BEGIN{i=1;j=2;sum=i+j;{print sum}}’ 3

      • 字符串操作符:沒(méi)有符號(hào)的操作符,字符串連接

      賦值操作符:=, +=, -=, *=, /=, %=, ^=++, –比較操作符:, >=, <, <=, !=, ==模式匹配符:~:左邊是否和右邊匹配包含!~:是否不匹配

      [root@dashui ~]# awk -F: ‘$1~”root”{print $0}’ /etc/passwd //當(dāng)$1即usrename為root或者包含 root時(shí)候,執(zhí)行printroot:x:0:0:root:/root:/bin/bashchroot:x:1003:1003:,62984566:/home/chroot:/bin/bashrooter:x:3320:4327:,62984566:/home/rooter:/bin/bash[root@dashui ~]# awk -F: ‘$3<2{print $0}' /etc/passwd //$3即uid小于2時(shí),執(zhí)行printroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin

      • 邏輯操作符:與&&,或||,非!

      [root@dashui ~]# awk -F: ‘$3>1000 && $3<2000{print $0}' /etc/passwdxiaoshui:x:1001:1001:xiaoshui,342342342:/home/xiaoshui:/bin/bashchroot:x:1003:1003:,62984566:/home/chroot:/bin/bashcentos:x:1004:1004:,62984566:/home/centos:/bin/bash[root@dashui ~]# awk -F: '$1=="root" || $1=="xiaoshui"{print $0}' /etc/passwdroot:x:0:0:root:/root:/bin/bashxiaoshui:x:1001:1001:xiaoshui,342342342:/home/xiaoshui:/bin/bash

      • awk控制語(yǔ)句

      { statements;… } 組合語(yǔ)句 if(condition) {statements;…} if(condition) {statements;…} else {statements;…} while(conditon) {statments;…} do {statements;…} while(condition) for(expr1;expr2;expr3) {statements;…} break continue delete array[index] delete array exit

      • (1){ statements;… } 組合語(yǔ)句

      [root@dashui ~]# awk ‘{a=1;print a}’ hah //將多個(gè)語(yǔ)句組合在一起11

      • (2) if(condition) {statements;…}

      [root@dashui ~]# awk -F: ‘{if($3==0){print $0}}’ /etc/passwdroot:x:0:0:root:/root:/bin/bash**注意:條件在小括號(hào)中,條件后的語(yǔ)句需在{ }中**

      • (3) if(condition) {statements;…} else {statements;…}
      • if(condition1){statement1}else if(condition2){statement2}else{statement3}

      [root@dashui ~]# awk ‘{if($0==”dashui”){print “dashui”} else{print “not dashui”}}’ hahnot dashuinot dashuidashui[root@dashui ~]# cat hahnihao a hahai amfanindashui

      • (4) while(conditon) {statments;…}

      //下面是找到以空格開(kāi)頭后跟linux16的行,將匹配到的行中的每個(gè)字段的長(zhǎng)度與8比較,大于8的輸出[root@dashui ~]# awk ‘/^[[:space:]]+linux16/{i=1;while(i8){print $i,length($i)};i++}}’ /etc/grub2.cfg /vmlinuz-3.10.0-327.el7.x86_64 30root=UUID=136f7cbb-d8f6-439b-aa73-3958bd33b05f 46net.ifnames=0 13/vmlinuz-0-rescue-3f3be6c44d1047a8b32f91efd2f2c5ab 50root=UUID=136f7cbb-d8f6-439b-aa73-3958bd33b05f 46net.ifnames=0 13 做上面的實(shí)驗(yàn)時(shí),因?yàn)槭侄遁敵隽它c(diǎn),將if后面的print中i前面的$符號(hào)給忘記了,結(jié)果就成了下面的情況[root@dashui ~]# awk ‘/^[[:space:]]+linux16/{i=1;while(i8){print i,length(i)};i++}}’ /etc/grub2.cfg 2 13 17 12 13 17 1

      //分析:print i,因?yàn)榍懊鎖賦值的是數(shù)字,本意是想打印

      符號(hào)丟掉時(shí),i也只是代表數(shù)字了所以打印出來(lái)的237237表示的就是第幾個(gè)字段,而length(i)就更好理解了,因?yàn)閘ength()就是求括號(hào)中的字符串的長(zhǎng)度,且因?yàn)閕都為個(gè)位數(shù),所以就為1嘍(注意:如果單單是length(i),i之前沒(méi)有被定義,此時(shí)打印出來(lái)的為0,以為i之前沒(méi)有被定義,所以為空)

      • (5)do-while循環(huán)

      語(yǔ)法:do {statement;…}while(condition)意義:無(wú)論真假,至少執(zhí)行一次循環(huán)體

      [root@dashui ~]# awk ‘BEGIN{i=0;do{i++}while(i<1){print i}}'1[root@dashui ~]# awk 'BEGIN{i=0;do{i++}while(i<=1){print i}}'2

      • (6)for循環(huán)

      語(yǔ)法:for(expr1;expr2;expr3) {statement;…}

      [root@dashui ~]# awk ‘/^[[:space:]]+linux16/{for(i=1;i<NF;i++){print $i}}' /etc/grub2.cfg linux16/vmlinuz-3.10.0-327.el7.x86_64root=UUID=136f7cbb-d8f6-439b-aa73-3958bd33b05frorhgbquietlinux16/vmlinuz-0-rescue-3f3be6c44d1047a8b32f91efd2f2c5abroot=UUID=136f7cbb-d8f6-439b-aa73-3958bd33b05frorhgbquiet特殊用法:能夠遍歷數(shù)組中的元素;語(yǔ)法:for(varin array) {for-body}[root@dashui ~]# awk -F: '{bash[$7]++}END{for (i in bash){print i,bash[i]}}' /etc/passwd/etc/nologin 2/bin/sync 1/bin/bash 47/shell/csh 1/sbin/nologin 34/sbin/halt 1/bin/csh 2/sbin/shutdown 1[root@dashui ~]#

      • (7)switch語(yǔ)句

      語(yǔ)法:switch(expression) {case VALUE1 or /REGEXP/: statement; case VALUE2 or /REGEXP2/: statement; …; default: statement}

      • (8)break和continue

      break表示跳出循環(huán),而continue表示跳過(guò)本輪循環(huán)

      [root@dashui ~]# awk ‘BEGIN{sum=0;for(i=1;i<10;i++){if(i==5){break}print i}}'1234[root@dashui ~]# awk 'BEGIN{sum=0;for(i=1;i<10;i++){if(i==5){continue}print i}}'12346789

      • (9)next

      提前結(jié)束對(duì)本行處理而直接進(jìn)入下一行處理(awk自身循環(huán))

      #$3%2!=0即uid為奇數(shù),跳過(guò)此行,即只打印uid為偶束的行[root@dashui ~]# awk -F: ‘{if($3%2!=0) next; print $1,$3}’ /etc/passwdroot 0daemon 2lp 4shutdown 6mail 8games 12

      awk數(shù)組

      關(guān)聯(lián)數(shù)組:array[index-expression]

      index-expression:

      (1) 可使用任意字符串;字符串要使用雙引號(hào)括起來(lái)(2) 如果某數(shù)組元素事先不存在,在引用時(shí),awk會(huì)自動(dòng)創(chuàng)建此元素,并將其值初始化為“空串”若要判斷數(shù)組中是否存在某元素,要使用“index in array”格式進(jìn)行遍歷

      注意:如果數(shù)組的鍵值為字符串時(shí),最后以雙引號(hào)給引起來(lái)

      [root@dashui ~]# awk ‘BEGIN{weekdays[“mon”]=”Monday”;weekdays[“tue”]=”Tuesday”;print weekdays[“mon”]}’Monday若要遍歷數(shù)組中的每個(gè)元素,要使用for循環(huán)[root@dashui ~]# netstat -tan|awk ‘/^tcp>/{state[$NF]++}END{for(i in state){print i,state[i]}}’LISTEN 3ESTABLISHED 1

      awk函數(shù)

      • 數(shù)值處理:

      rand():返回0和1之間一個(gè)隨機(jī)數(shù)

      注意:需配合srand()函數(shù)使用,不然不是隨機(jī)數(shù)

      [root@dashui ~]# awk ‘BEGIN{srand(); for (i=1;i<=10;i++)print int(rand()*100)}'54452324147256923131

      • 字符串處理:

      length([s]):返回指定字符串的長(zhǎng)度

      sub(r,s,[t]):對(duì)t字符串進(jìn)行搜索r表示的模式匹配的內(nèi)容,并將第一個(gè)匹配的內(nèi)容替換為s

      gsub(r,s,[t]):對(duì)t字符串進(jìn)行搜索r表示的模式匹配的內(nèi)容,并全部替換為s所表示的內(nèi)容

      [root@dashui ~]# echo “2008:08:08 08:08:08″|awk ‘sub(“:”,”-“,$0)’2008-08:08 08:08:08[root@dashui ~]# echo “2008:08:08 08:08:08″|awk ‘gsub(“:”,”-“,$0)’2008-08-08 08-08-08[root@dashui ~]#

      split(s,array,[r]):以r為分隔符,切割字符s,并將切割后的結(jié)果保存至array所表示的數(shù)組中,第一個(gè)索引值為1,第二個(gè)索引值為2,…

      這里使用split函數(shù)將第五個(gè)字段中的ip和端口號(hào)分開(kāi),只取出了ip。

      [root@dashui ~]# netstat -tan | awk ‘/^tcp>/{split($5,ip,”:”);count[ip[1]]++}END{for (i in count) {print i,count[i]}}’10.1.0.82 10.0.0.0 3[root@dashui ~]# netstat -tan Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 10.1.0.26:22 10.1.0.82:54143 ESTABLISHEDtcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:631 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN [root@dashui ~]#

      • 自定義函數(shù)

      格式:function name ( parameter, parameter, … ) {statementsreturn expression}

      這里自定義了一個(gè)函數(shù),求出兩個(gè)變量的最大值。

      [root@dashui ~]# awk -f awk.fun 3[root@dashui ~]# cat awk.fun function max(v1,v2) {v1>v2?var=v1:var=v2return var}BEGIN{a=3;b=2;print max(a,b)}**注意:和之前的shell中的函數(shù)有些不同,這里如果需要像awk函數(shù)中傳遞變量,則需要在括號(hào)中定義形參。**

      awk中調(diào)用shell命令

      • system命令

      [root@dashui ~]# awk BEGIN'{system(“hostname”)}’dashui.localdomain

      空格是awk中的字符串連接符,如果system中需要使用awk中的變量可以使用空格分隔,或者說(shuō)除了awk的變量外其他一律用””引用起來(lái)。

      [root@dashui ~]# awk ‘BEGIN{name=”xiaoshui”;system(“echo your name is ” name)}’your name is xiaoshui

      awk腳本

      將awk程序?qū)懗赡_本,直接調(diào)用或執(zhí)行

      將action寫(xiě)入到腳本中,然后調(diào)用執(zhí)行[root@dashui ~]# awk -F: -f f1.awk /etc/passwdroot 0bin 1daemon 2adm 3hu [root@dashui ~]# cat f1.awk {if($3<4)print $1,$3}# 腳本文件中的/bin/awk -f表示是用awk -f來(lái)執(zhí)行下面語(yǔ)句[root@dashui ~]# ./f1.awk -F: /etc/passwdroot 0bin 1daemon 2adm 3hu [root@dashui ~]# cat f1.awk #!/bin/awk -f#this is a awk script{if($3<4)print $1,$3}

      • 向awk腳本傳遞參數(shù)

      格式:awkfile var=value var2=value2… Inputfile

      # min和max分別對(duì)應(yīng)腳本文件中的min和max[root@dashui ~]# ./f1.awk -F: min=100 max=200 /etc/passwdavahi-autoipd 170abrt 173rtkit 172usbmuxd 113pulse 171[root@dashui ~]# cat f1.awk #!/bin/awk -f{if($3>=min && $3<=max)print $1,$3}

      強(qiáng)化練習(xí)

      • 1.打印一個(gè)表頭,并且打印用戶名和ID

      [root@dashui ~]# awk -F: ‘BEGIN{printf “Username UID”}{printf “%-20s %d”,$1,$3}’ /etc/passwdUsername UIDroot 0bin 1daemon 2adm 3lp 4sync 5shutdown 6halt 7mail 8operator 11games 12

      • 2.打印一個(gè)表頭和表尾,并打印用戶名,ID,及shell

      [root@dashui ~]# awk -F: ‘BEGIN{printf “Username UID Shell”}{printf “%-20s %d %10s”,$1,$3,$5}END{print “Finished…”}’ /etc/passwdUsername UID Shellroot 0 rootbin 1 bindaemon 2 daemonadm 3 admlp 4 lpsync 5 syncshutdown 6 shutdown…省略…haha 4376 xixi 4377 hehe 4378 Finished…[root@dashui ~]#

      • 3.對(duì)文本中的字段進(jìn)行字符個(gè)數(shù)統(tǒng)計(jì)

      [root@dashui ~]# awk ‘{print $0,length($0)}’ hahnihao a haha 12i amfanin 9dashui 6

      • 4.打印字符個(gè)數(shù)大于等于8的字段

      #其實(shí)就是比題3多了一條if判斷語(yǔ)句[root@dashui ~]# awk ‘{if(length($0)>8){print $0,length($0)}}’ hahnihao a haha 12i amfanin 9

      • 5.統(tǒng)計(jì)系統(tǒng)中shell的類型,并打印shell引用的次數(shù)

      #中間運(yùn)用了數(shù)組和for循環(huán)[root@dashui ~]# awk -F: ‘{count[$7]++}END{for (i in count){print i,count[i]}}’ /etc/passwd/etc/nologin 2/bin/sync 1/bin/bash 47/shell/csh 1/sbin/nologin 34/sbin/halt 1/bin/csh 2/sbin/shutdown 1

      • 6.統(tǒng)計(jì)fstab文件中,各文件系統(tǒng)被引用的次數(shù)

      #比上題多了一步地址定界[root@dashui ~]# awk ‘/^[^#]/{count[$3]++}END{for (i in count){print i,count[i]}}’ /etc/fstab swap 1xfs 3

      • 7.統(tǒng)計(jì)系統(tǒng)中各TCP連接狀態(tài)的數(shù)量

      [root@dashui ~]# netstat -tan|awk ‘/^tcp>/{state[$6]++}END{for (i in state){print i,state[i]}}’LISTEN 3ESTABLISHED 1

      • 8.將文本的重復(fù)行去掉

      #第一次讀取aaa,arr[aaa]因?yàn)闆](méi)有定義,所以為空,又取非,所以為真,arr[aaa]++是先賦值后加加,所以第一次打印出來(lái)#第二次,在遇見(jiàn)aaa時(shí)候,因?yàn)橹坝兄盗薬rr[aaa]=1,所以取反為0,不執(zhí)行后的print操作,但是++依然正常運(yùn)行[root@dashui ~]# awk ‘!arr[$0]++’ hahaaabbbcccdddfff[root@dashui ~]# cat hah aaabbbcccaaadddaaaaaafffccc[root@dashui ~]#

      謝謝瀏覽,以后會(huì)不定時(shí)更新…

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年6月21日 09:16
      下一篇 2022年6月21日 09:16

      相關(guān)推薦

      • 存儲(chǔ)過(guò)程語(yǔ)法(sql server存儲(chǔ)過(guò)程語(yǔ)法)

        今天小編給各位分享存儲(chǔ)過(guò)程語(yǔ)法的知識(shí),其中也會(huì)對(duì)sql server存儲(chǔ)過(guò)程語(yǔ)法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧! oracle存儲(chǔ)過(guò)程基本語(yǔ)法…

        2022年11月26日
      • 寶可夢(mèng)朱紫四大天王屬性怎么樣 四大天王屬性數(shù)值介紹

        寶可夢(mèng)朱紫四大天王屬性如何?四大天王的屬性數(shù)值玩家們還是挺好奇的,想要了解四大天王屬性的可以看看下面小編的介紹,小編會(huì)把四大天王的屬性數(shù)值全都分享在下面,各位趕緊來(lái)小編這里多了解一…

        2022年11月25日
      • 直播帶貨詳細(xì)腳本(直播文案策劃怎么寫(xiě))

        短視頻運(yùn)營(yíng)策劃方案怎么寫(xiě)?涉及哪幾個(gè)方面? 我在網(wǎng)上看到好多千篇一律的文章,關(guān)于【短視頻運(yùn)營(yíng)策劃方案】這一塊,基本都是在講賬號(hào)的內(nèi)容本身。 你內(nèi)容做得再好,卻不掌握算法的規(guī)律,能有…

        2022年11月25日
      • 淘寶直播開(kāi)通后帶貨鏈接怎么做(淘寶直播需要開(kāi)通淘寶店鋪嗎)

        直播帶貨無(wú)論是對(duì)于商家來(lái)說(shuō)還是主播收益都是非??捎^的,所以不少平臺(tái)都有直播帶貨功能,一些小伙伴也想加入淘寶直播,那么淘寶直播開(kāi)通后帶貨鏈接怎么做?下面小編為大家?guī)?lái)淘寶直播開(kāi)通后帶…

        2022年11月24日
      • 科比19歲女兒遭自稱與她生“科比式孩子”男子跟蹤騷擾

        極目新聞?dòng)浾咄趿亮咙S佳琪 據(jù)??怂剐侣劸W(wǎng)報(bào)道,當(dāng)?shù)貢r(shí)間11月21日,已故籃球巨星科比·布萊恩特的長(zhǎng)女娜塔莉亞·布萊恩特21日向法院提交臨時(shí)限制令,聲稱這位32歲的前科從十幾歲起就騷…

        2022年11月24日
      • 免費(fèi)清理c盤(pán)的軟件(清理c盤(pán)空間不影響系統(tǒng))

        電腦用久了慢如龜速,還卡頓,這最大的原因啊就是C盤(pán)空間不足造成的。 即使電腦配置再好,或者硬盤(pán)再快,如果長(zhǎng)時(shí)間沒(méi)有打掃C盤(pán),打開(kāi)文件或者穩(wěn)定之類的,都卡得讓人頭大。 這時(shí)候呢不要去…

        2022年11月24日
      • pdf虛擬打印機(jī)(添加pdf虛擬打印機(jī))

        本文主要講的是pdf虛擬打印機(jī),以及和添加pdf虛擬打印機(jī)相關(guān)的知識(shí),如果覺(jué)得本文對(duì)您有所幫助,不要忘了將本文分享給朋友。 pdf虛擬打印機(jī)具體是什么功能? 電腦虛擬打印機(jī)的功能有…

        2022年11月24日
      • 交錯(cuò)核心芯片裝備槽在哪?交錯(cuò)核心芯片裝備槽布置一覽

        交錯(cuò)核心芯片裝備槽是很重要的,這些布置在什么地方。不少玩家不清楚該怎么布置才好,在游戲里怎么選擇裝備比較好。想要知道的小伙伴們,就一起來(lái)看看吧。 交錯(cuò)核心芯片裝備槽布置一覽 可以看…

        2022年11月23日
      • 快手限流多久能解除(快手限流什么意思)

        我相信很多人都看中了快手平臺(tái)的商機(jī),都爭(zhēng)先恐后地想要搶占機(jī)會(huì),可一些人剛剛作出一點(diǎn)成績(jī),就被降權(quán)了,自己也不知道什么原因。所以今天就來(lái)聊聊快手賬號(hào)降權(quán)操作分享,趕快來(lái)看看避免違規(guī)!…

        2022年11月23日
      • Win11 22H2再出新問(wèn)題Bug:無(wú)法彈出USB設(shè)備

        作為Windows 11的首次大更新,在Win11 22H2發(fā)布后并沒(méi)有帶來(lái)預(yù)想的場(chǎng)景,各種問(wèn)題頻現(xiàn)成為了一種常態(tài)。 近日有消息稱,Win11 22H2存在一個(gè)占用沖突Bug,當(dāng)用…

        2022年11月22日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息