欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

      linuxawk命令,linux命令?

      linux里awk是做什么的,請(qǐng)?jiān)敿?xì)說(shuō)明

      awk是一個(gè)強(qiáng)大的文本分析工具,相對(duì)于grep的查找,sed的編輯,awk在其對(duì)數(shù)據(jù)分析并生成報(bào)告時(shí),顯得尤為強(qiáng)大。簡(jiǎn)單來(lái)說(shuō)awk就是把文件逐行的讀入,以空格為默認(rèn)分隔符將每行切片,切開(kāi)的部分再進(jìn)行各種分析處理。

      成都創(chuàng)新互聯(lián)是一家專業(yè)提供界首企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、html5、小程序制作等業(yè)務(wù)。10年已為界首眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

      awk有三個(gè)不同的版本:awk、nawk和gawk,未作特別說(shuō)明,一般指gawk,gawk是awk的GNU版本。

      之所以叫awk是因?yàn)槠淙×巳粍?chuàng)始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family Name

      的首字符。

      使用方法:

      awk'{pattern+action}'{filenames}

      盡管操作可能會(huì)很復(fù)雜,但語(yǔ)法總是這樣,其中pattern表示awk在數(shù)據(jù)中查找的內(nèi)容,而action是在找到匹配內(nèi)容時(shí)所執(zhí)行的一系列命令。花括號(hào)({})不需要在程序中始終出現(xiàn),但它們用于根據(jù)特定的模式對(duì)一系列指令進(jìn)行分組。pattern就是要表示的正則表達(dá)式,用斜杠括起來(lái)。

      awk語(yǔ)言的最基本功能是在文件或者字符串中基于指定規(guī)則瀏覽和抽取信息,awk抽取信息后,才能進(jìn)行其他文本操作。完整的awk腳本通常用來(lái)格式化文本文件中的信息。

      通常,awk是以文件的一行為處理單位的。awk每接收文件的一行,然后執(zhí)行相應(yīng)的命令,來(lái)處理文本。

      調(diào)用awk的三種方式

      1、命令行方式

      awk[-F field-separator]'commands'input-file(s)

      其中,commands是真正awk命令,[-F域分隔符]是可選的。input-file(s)是待處理的文件。

      在awk中,文件的每一行中,由域分隔符分開(kāi)的每一項(xiàng)稱為一個(gè)域。通常,在不指名-F域分隔符的情況下,默認(rèn)的域分隔符是空格。

      2、shell腳本方式

      將所有的awk命令插入一個(gè)文件,并使awk程序可執(zhí)行,然后awk命令解釋器作為腳本的首行,一遍通過(guò)鍵入腳本名稱來(lái)調(diào)用。

      相當(dāng)于shell腳本首行的:#!/bin/sh

      可以換成:#!/bin/awk

      3、將所有的awk命令插入一個(gè)單獨(dú)文件,然后調(diào)用:

      awk-f awk-script-file input-file(s)

      其中,-f選項(xiàng)加載awk-script-file中的awk腳本,input-file(s)跟上面的是一樣的。

      Linux入門系列——awk命令詳解

      awk是一個(gè)強(qiáng)大的文本分析工具,與grep、sed相比,awk在對(duì)數(shù)據(jù)分析并生成報(bào)告時(shí),顯得有很大的優(yōu)勢(shì)。

      awk有三個(gè)不同的版本:awk、nawk和gawk,在沒(méi)有做特殊說(shuō)時(shí)的時(shí)候默認(rèn)的就是gawk,gawk是awk的GNU版本。

      其中command是真正的awk命令,-F表示域的分隔符,是個(gè)可選項(xiàng)。Filename是等待處理的文件

      將所有的awk命令寫(xiě)入到一個(gè)文件,并使用該文件有X權(quán)限,然后awk命令解釋器作為腳本的首行,也就是說(shuō)可以把腳本最開(kāi)始的 #!/bin/bash 換成 #!/bin/awk

      最后直接執(zhí)行這個(gè)腳本文件就行了。

      -f 指定要加載的awk腳本,是一個(gè)文件。Filename是等待處理的文件

      awk的工作流程是這樣的:讀入一行后(最后面帶有” ”的),就按-F指定的分隔符來(lái)將該行劃分成N個(gè)區(qū)域,$0表示所有的區(qū)域,$1表示第一個(gè)域,$2表示第二個(gè)域,依此類推,$n表示第n個(gè)域。

      總結(jié):awk先執(zhí)行BEGIN內(nèi)的命令,然后再讀入文件中的行,接著就是按照指定的分隔符將該行分成N個(gè)區(qū)域,然后再來(lái)執(zhí)行模式所對(duì)應(yīng)的動(dòng)作action。然后,再來(lái)讀入第二行。。再重復(fù)執(zhí)行action,直到所有的行都處理完成。最后再執(zhí)行END中的命令。

      注意:' // '之間是支持正則表達(dá)式的,如果此處只有pattern,而沒(méi)有action,那么awk默認(rèn)會(huì)把匹配到的行打印出來(lái)。

      awk中的print還可以使用C語(yǔ)言中的printf來(lái)替代。在輸出格式比較復(fù)雜的時(shí)候使用printf函數(shù)會(huì)比print函數(shù)要更直觀一些,如下:

      還可以使用-v key=value來(lái)自定義變量。如下:

      awk中的條件語(yǔ)句是從C中借鑒過(guò)來(lái)的

      語(yǔ)法:if (condition) {then-body} else {else-body}

      例如使用awk來(lái)統(tǒng)計(jì)某個(gè)目錄下的普通文件的大小,不包括子目錄的,并過(guò)濾掉目錄。

      循環(huán)語(yǔ)句也和C中的一樣,支持while、do/while、for、continue、break等關(guān)鍵字。

      break和continue常用于循環(huán)中;

      在awk中,數(shù)組的下標(biāo)可以是數(shù)字或字母。一般awk中的數(shù)組的作用是從記錄中收集信息,用于計(jì)算總和、統(tǒng)計(jì)單詞等。

      在awk中要?jiǎng)h除一個(gè)元素的時(shí)候使用 delete array[index]

      更多請(qǐng)參見(jiàn)awk官方文檔[]

      Linux之a(chǎn)wk詳解

      awk是一個(gè)強(qiáng)大的文本分析工具,相對(duì)于grep的查找,sed的編輯,awk在對(duì)數(shù)據(jù)分析并生成報(bào)告時(shí),顯得尤為強(qiáng)大。

      簡(jiǎn)單來(lái)說(shuō)awk就是把文件逐行的讀入,以空格為默認(rèn)分隔符將每行切片,切開(kāi)的部分再進(jìn)行各種分析處理。

      awk有三個(gè)不同的版本:awk、nawk和gawk,未作特別說(shuō)明,一般指gawk,gawk是awk的GNU版本。

      之所以叫awk是因?yàn)槠淙×巳粍?chuàng)始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family Name的首字符。

      awk格式:

      格式: sed -n '3p' sed.txt

      找誰(shuí)干啥(條件動(dòng)作)

      awk格式

      #取出/etc/passwd 第1行的第1列和第3列

      awk -F: 'NR==1{print $1.$3}' /etc/passwd

      awk 選項(xiàng) '條件{動(dòng)作}' /etc/passwd

      條件: 哪一行,過(guò)濾什么內(nèi)容

      動(dòng)作: print輸出與顯示 ,計(jì)算....

      awk取行:與sed類似

      案例01:取出sed.txt的第2行

      [root@oldboy81-golden-lnb /oldboy]# cat sed.txt

      101.oldgirl,CEO

      102.zhangya,CTO

      103.lidao007.COO

      104.yy,CFO

      105.feixue,CIO

      110.lidao,COCO

      [root@oldboy81-golden-lnb /oldboy]# awk 'NR==2' sed.txt

      102.zhangya,CTO

      #awk '行號(hào) 等于 2' sed.txt

      #NR awk內(nèi)置變量

      Number of Record 記錄號(hào)(行號(hào))

      案例02:取出sed.txt中包含oldboy或lidao的行

      [root@oldboy81-golden-lnb /oldboy]# sed -rn '/oldboy|lidao/p' sed.txt

      103.lidao007.COO

      110.lidao,COCO

      [root@oldboy81-golden-lnb /oldboy]# awk '/oldboy|lidao/' sed.txt

      103.lidao007.COO

      110.lidao,COCO

      案例03:取出文件第2行到第5行內(nèi)容

      #awk '行號(hào)大于等于2 并且 行號(hào)小于等于5' sed.txt

      #方法01

      awk 'NR=2 NR=5' sed.txt #必會(huì)

      表示并且.

      #方法02

      sed -n '2.5p' sed.txt

      #方法03 了解

      awk 'NR==2.NR==5' sed.txt #從行號(hào)是2的行開(kāi)始 到 行號(hào)是5的行結(jié)束( 了解)

      案例04:取出文件第3行到最后一行內(nèi)容

      [root@oldboy81-golden-lnb /oldboy]# awk 'NR = 3' sed.txt

      103.lidao007.COO

      104.yy,CFO

      105.feixue,CIO

      110.lidao,COCO

      [root@oldboy81-golden-lnb /oldboy]# sed -n '3.$p' sed.txt

      103.lidao007.COO

      104.yy,CFO

      105.feixue,CIO

      110.lidao,COCO

      案例05:取出從包含oldboy的行到lidao的行

      [root@oldboy81-golden-lnb /oldboy]# cat sed.txt

      101.oldgirl,CEO

      102.zhangya,CTO

      103.lidao007.COO

      104.yy,CFO

      105.feixue,CIO

      110.lidao,COCO

      root@oldboy81-golden-lnb /oldboy]# sed -n '/old/,/lidao/p' sed.txt

      101.oldgirl,CEO

      102.zhangya,CTO

      103.lidao007.COO

      [root@oldboy81-golden-lnb /oldboy]# awk '/old/ , /lidao/' sed.txt

      101.oldgirl,CEO

      102.zhangya,CTO

      103.lidao007.COO

      Linux三劍客awk命令篇二:命令操作符

      Linux三劍客awk命令篇二:命令操作符

      關(guān)于awk的原理等基本知識(shí)請(qǐng)參考上篇:

      Linux三劍客awk命令篇一:原理及基本命令

      補(bǔ)充

      1、語(yǔ)法格式:

      (1) Awk完整語(yǔ)法

      awk 'BEGIN{commands} pattern{commands}END{commands} ' file

      BEGIN{commands}:處理數(shù)據(jù)前執(zhí)行的命令。

      END{commands}:處理完數(shù)據(jù)后執(zhí)行的命令。

      這兩個(gè)命令可以省略。見(jiàn)(2)

      (2) Awk基本語(yǔ)法

      awk -F '分割符' '/模式/{動(dòng)作} ' file

      這里的 '/模式/{動(dòng)作} ' 類似于sed的命令格式。

      模式:

      (1) 正則表達(dá)式(注意格式: /正則表達(dá)式/ )

      (2) 條件表達(dá)式(例如: 等等)

      總結(jié):

      這里的模式通俗來(lái)講是 用來(lái)找誰(shuí), 而動(dòng)作表示是 干啥。

      2、 awk的命令操作符

      (1) 正則表達(dá)式與bash一致

      (2) + - * / % ++ --

      (3) || !

      (4) = = != == ~ !~

      ~:表示匹配后面的模式,用于字段,見(jiàn) 案例1 。

      其余的都比較常見(jiàn)就不舉例了。

      3、案例

      案例1:

      ~使用案例

      awk -F : '$3 ~ /\...\/{print $1,$3}' /etc/passwd

      解釋:

      模式:\...\

      \ \表示定界符,只匹配3個(gè)字符。

      $3 ~:表示$3這個(gè)字段必須符合后面模式(\...\)的要求。

      見(jiàn)如下輸出結(jié)果,$3都是3個(gè)字符。

      案例2:

      % || ==使用案例

      seq 100 | awk '$1 % 7 == 0 || $1 ~ /^99/{print $1}'

      輸出結(jié)果的要求:

      整除7或者以99開(kāi)頭

      案例3:

      ++使用

      awk 'BEGIN{num=0}{num++}END{print num}' /etc/passwd

      簡(jiǎn)單解釋:

      BEGIN{num=0}:定義一個(gè)變量num

      {num++}:這里沒(méi)有模式,只有動(dòng)作。

      即每匹配到文件/etc/passwd的一行就執(zhí)行num++

      END{print num}:文件遍歷結(jié)束,打印num的值,即文件的行數(shù)。

      這里我們使用wc -l驗(yàn)證也是沒(méi)問(wèn)題的。

      cat /etc/passwd | wc -l

      上面3個(gè)案例簡(jiǎn)單的使用了awk的命令操作符。

      雖然只是用到了幾個(gè)簡(jiǎn)單的,但是其他同理,大家可以執(zhí)行操作。

      下一篇:

      Linux三劍客awk命令篇二之內(nèi)部變量

      歡迎大家給予寶貴的意見(jiàn)或者建議。

      歡迎大家補(bǔ)充或者共享一些其他的方法。

      感謝支持。

      文章題目:linuxawk命令,linux命令?
      網(wǎng)站鏈接:http://chinadenli.net/article40/dsgiceo.html

      成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT建站公司移動(dòng)網(wǎng)站建設(shè)網(wǎng)站導(dǎo)航品牌網(wǎng)站制作

      廣告

      聲明:本網(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)

      手機(jī)網(wǎng)站建設(shè)