青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大龍的博客

常用鏈接

統計

最新評論

awk命令

unix的AWK命令介紹收藏收藏

    awk語言的最基本功能是在文件或字符串中基于指定規則瀏覽和抽取信息,awk抽取信息后,才能進行其他文本操作,完整的awk腳本通常用來格式化文本文件中的信息

調用awk:

   第一種,命令行方式,如:awk [-F field-separator] 'commands' input-file(s)

         這里commands是真正的awk命令,[-F域分隔符]是可選的,awk默認使用空格分隔,因此如果要瀏覽域間有空格的文本,不必指定這個選項,但如果瀏覽如passwd文件,此文件各域使用冒號作為分隔符,則必須使用-F選項:   awk -F : 'commands' input-file

   第二種,將所有awk命令插入一個文件,并使awk程序可執行,然后用awk命令解釋器作為腳本的首行,以便通過鍵入腳本名稱來調用它

   第三種,將所有awk命令插入一個單獨文件,然后調用: awk -f awk-script-file input-file

         -f選項指明在文件awk-script-file的awk腳本,input-file是使用awk進行瀏覽的文件名

awk腳本:

    awk腳本由各種操作和模式組成,根據分隔符(-F選項),默認為空格,讀取的內容依次放置到對應的域中,一行一行記錄讀取,直到文件尾

    模式和動作:任何awk語句都是由模式和動作組成,在一個awk腳本中可能有許多語句。模式部分決定動作語句何時觸發及觸發事件。動作即對數據進行的操作,如果省去模式部分,動作將時刻保持執行狀態

    模式可以是任何條件語句或復合語句或正則表達式,模式包含兩個特殊字段BEGIN和END,使用BEGIN語句設置計數和打印頭,BEGIN語句使用在任何文本瀏覽動作之前,之后文本瀏覽動作依據輸入文件開始執行;END語句用來在awk完成文本瀏覽動作后打印輸出文本總數和結尾狀態標志,有動作必須使用{}括起來

    實際動作在大括號{}內指明,常用來做打印動作,但是還有更長的代碼如if和循環looping語句及循環退出等,如果不指明采取什么動作,awk默認打印出所有瀏覽出的記錄

域和記錄:

    awk執行時,其瀏覽標記為$1,$2...$n,這種方法稱為域標記.使用$1,$3表示參照第1和第3域,注意這里使用逗號分隔域,使用$0表示使用所有域

    例:awk '{print $0}' temp.txt > sav.txt   表示打印所有域并把結果重定向到sav.txt中

      awk '{print $0}' temp.txt|tee sav.txt  和上例相似,不同的是將在屏幕上顯示出來

      awk '{print $1,$4}' temp.txt           只打印出第1和第4域

      awk 'BEGIN {print "NAME  GRADE\n-------------"} {print $1"\t"$4}' temp.txt 

        表示打信息頭,即輸入的內容的第一行前加上"NAME  GRADE\n-------------",同時內容以tab分開

      awk 'BEGIN {print "being"} {print $1} END {print "end"}' temp 同時打印信息頭和信息尾

條件操作符:

    <、<=、==、!=、>=、~匹配正則表達式、!~不匹配正則表達式

    匹配:awk '{if ($4~/ASIMA/) print $0}' temp 表示如果第四個域包含ASIMA,就打印整條

        awk '$0 ~ /ASIMA/' temp 表示只要整條包含ASIMA就打印出來

    精確匹配:awk '$3=="48" {print $0}' temp    只打印第3域等于"48"的記錄

    不匹配:  awk '$0 !~ /ASIMA/' temp      打印整條不包含ASIMA的記錄

    不等于:  awk '$1 != "asima"' temp

    小于:    awk '{if ($1<$2) print $1 "is smaller"}' temp

    設置大小寫: awk '/[Gg]reen/' temp      打印整條包含Green,或者green的記錄

    任意字符: awk '$1 ~/^...a/' temp    打印第1域中第四個字符是a的記錄,^從行首開始,.任意字符     

    或關系匹配: awk '$0~/(abc)|(efg)/' temp   使用|時,語句需要括起來  

    AND與關系:  awk '{if ( $1=="a" && $2=="b" ) print $0}' temp

    OR或關系:   awk '{if ($1=="a" || $1=="b") print $0}' temp

awk內置變量:

    ARGC   命令行參數個數    AGRV   命令行參數排列      ENVIRON   支持隊列中系統環境變量的使用

    FILENAME   awk瀏覽的文件名   FNR   瀏覽文件的記錄數   FS   設置輸入域分隔符,同- F選項

    NF   瀏覽記錄的域個數   NR   已讀的記錄數    OFS   輸出域分隔符

    ORS  輸出記錄分隔符     RS   控制記錄分隔符

    例:  awk 'END {print NR}' temp    在最后打印已讀記錄條數

         awk '{print NF,NR,$0} END {print FILENAME}' temp

         awk '{if (NR>0 && $4~/Brown/) print $0}' temp  至少存在一條記錄且包含Brown

    NF的另一用法:  echo $PWD | awk -F/ '{print $NF}'   顯示當前目錄名

awk操作符:

    在awk中使用操作符,基本表達式可以劃分成數字型、字符串型、變量型、域及數組元素

    設置輸入域到變量名:

       awk '{name=$1;six=$3; if (six=="man") print name " is " six}' temp

    域值比較操作:

       awk 'BEGIN {BASE="27"} {if ($4<BASE) print $0}' temp

    修改數值域取值:(原輸入文件不會被改變)

       awk '{if ($1=="asima") $6=$6-1;print $1,$6,$7}' temp

    修改文本域:

       awk '{if ($1=="asima) ($1=="desc");print $1}' temp

    只顯示修改記錄:(只顯示所需要的,區別上一條命令,注意{})

       awk '{if ($1=="asima) {$1=="desc";print$1}}' temp

    創建新的輸出域:

       awk '{$4=$3-$2; print $4}' temp

    統計列值:

       awk '(tot+=$3);END {print tot}' temp           會顯示每列的內容

       awk '{(tot+=$3)};END {print tot}' temp         只顯示最后的結果

    文件長度相加:

       ls -l|awk '/^[^d]/ {print $9"\t"$5} {tot+=$5} END{print "totKB:" tot}'    #[^d]是指匹配除去d的字符

    只列出文件名:

       ls -l|awk '{print $9}'     常規情況文件名是第9域

awk內置字符串函數:

    gsub(r,s)           在整個$0中用s替代r

       awk 'gsub(/name/,"xingming") {print $0}' temp

    gsub(r,s,t)         在整個t中用s替代r

    index(s,t)          返回s中字符串t的第一位置

       awk 'BEGIN {print index("Sunny","ny")}' temp     返回4

    length(s)           返回s的長度

    match(s,r)          測試s是否包含匹配r的字符串

       awk '$1=="J.Lulu" {print match($1,"u")}' temp    返回4

    split(s,a,fs)       在fs上將s分成序列a

       awk 'BEGIN {print split("12#345#6789",myarray,"#")"'

       返回3,同時myarray[1]="12", myarray[2]="345", myarray[3]="6789"

    sprint(fmt,exp)     返回經fmt格式化后的exp

    sub(r,s)            從$0中最左邊最長的子串中用s代替r(只更換第一遇到的匹配字符串)

    substr(s,p)         返回字符串s中從p開始的后綴部分

    substr(s,p,n)       返回字符串s中從p開始長度為n的后綴部分

printf函數的使用:

    字符轉換: echo "65" |awk '{printf "%c\n",$0}'    輸出A

             awk 'BEGIN {printf "%f\n",999}'        輸出999.000000

    格式化輸出:awk '{printf "%-15s %s\n",$1,$3}' temp 將第一個域全部左對齊顯示

其他awk用法:

    向一行awk命令傳值:

        awk '{if ($5<AGE) print $0}' AGE=10 temp

        who | awk '{if ($1==user) print $1 " are in " $2 ' user=$LOGNAME 使用環境變量

    awk腳本命令:

        開頭使用 !/bin/awk -f  ,如果沒有這句話自含腳本將不能執行,例子:

  1. !/bin/awk -f
  2. # all comment lines must start with a hash '#'
  3. # name: student_tot.awk
  4. # to call: student_tot.awk grade.txt
  5. # prints total and average of club student points
  6.  
  7. # print a header first
  8. BEGIN
  9. {
  10.     print "Student    Date   Member No.  Grade  Age  Points  Max"
  11.     print "Name       Joined                         Gained  Point Available"
  12.     print "================================================================="
  13. }
  14. # let's add the scores of points gained
  15. (tot+=$6);   ?
  16. # finished processing now let's print the total and average point
  17. END
  18. {
  19.     print "Club student total points :" tot
  20.     print "Average Club Student points :" tot/NR
  21. }

 

awk數組:

    awk的循環基本結構    For (element in array) print array[element]

awk 'BEGIN {split("12#345#6789",myarray,"#"); for (a in myarray) print myarray[a]}'

posted on 2009-09-03 19:34 大龍 閱讀(430) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            你懂的视频一区二区| 日韩午夜电影| 欧美在线免费| 亚洲制服av| 亚洲视频福利| 亚洲在线观看免费视频| 亚洲欧美精品在线| 欧美一区二区视频免费观看| 在线视频欧美一区| 久久久久久久久久久成人| 久久在线观看视频| 欧美日韩999| 国产在线一区二区三区四区| 亚洲免费在线观看视频| 欧美亚洲在线| 欧美精品一区二区视频| 欧美日韩在线三级| 国产一区二区三区久久久久久久久| 国产日韩欧美一区二区| 91久久香蕉国产日韩欧美9色| 亚洲免费久久| 久久综合五月| 国产一区二区三区最好精华液| 在线免费观看日本一区| 午夜精品理论片| 亚洲欧洲视频在线| 老司机成人网| 亚洲第一网站免费视频| 久久精品国产91精品亚洲| 欧美一级免费视频| 在线国产日韩| 久久精品中文字幕一区| av成人福利| 国产精品白丝jk黑袜喷水| 日韩午夜电影| 9l国产精品久久久久麻豆| 欧美精选午夜久久久乱码6080| 亚洲第一主播视频| 欧美国产视频日韩| 欧美mv日韩mv国产网站| 亚洲激精日韩激精欧美精品| 欧美国产日韩视频| 欧美日韩国产页| 香蕉久久夜色精品国产| 羞羞视频在线观看欧美| 国产伊人精品| 亚洲人永久免费| 国产精品久久久久毛片软件| 欧美v亚洲v综合ⅴ国产v| 亚洲精品日韩久久| 国产精品99久久久久久宅男| 国产精品日韩| 亚洲成人直播| 国产欧美日韩伦理| 国产伦精品一区二区三区高清版| 亚洲一区视频在线观看视频| 久久精品一级爱片| 亚洲午夜精品久久| 麻豆91精品91久久久的内涵| 亚洲嫩草精品久久| 欧美1区3d| 亚洲第一在线| 国产一区二区三区自拍| 亚洲影视九九影院在线观看| 91久久在线观看| 久久久亚洲高清| 久久精品国产综合| 国产日韩欧美一二三区| 中文亚洲欧美| 亚洲免费视频在线观看| 欧美日韩免费观看一区二区三区 | 日韩视频在线观看国产| 亚洲电影网站| 久久精品女人的天堂av| 欧美成人一二三| 亚洲六月丁香色婷婷综合久久| 久久精品国产清高在天天线 | 午夜亚洲影视| 国产精品白丝黑袜喷水久久久| 99精品热6080yy久久| 久久精品99国产精品酒店日本| 一级日韩一区在线观看| 欧美日韩精品一区二区在线播放 | 国产精品高潮呻吟久久av无限 | 亚洲午夜在线观看视频在线| 欧美精品在线网站| 亚洲欧美第一页| 久久综合色播五月| 一本色道久久综合精品竹菊| 国产精品av一区二区| 欧美一区三区二区在线观看| 久久中文字幕一区| 一区二区免费在线播放| 黄色小说综合网站| 欧美区国产区| 久久久久欧美| 亚洲网站啪啪| 亚洲精品日韩久久| 久久伊伊香蕉| 欧美一级视频精品观看| 亚洲精品乱码久久久久久久久 | 亚洲图片在线观看| 欧美激情综合五月色丁香小说| 亚洲欧美日韩天堂一区二区| 亚洲国产成人av| 老牛国产精品一区的观看方式| 性欧美1819性猛交| 欧美一区二区三区精品| 亚洲美女色禁图| 狠狠88综合久久久久综合网| 国产精品久线观看视频| 欧美性猛交xxxx乱大交退制版| 久久久噜噜噜久久中文字免| 亚洲一区二区三区在线| 亚洲一区二区欧美日韩| 亚洲午夜激情在线| 亚洲欧美电影院| 欧美va亚洲va日韩∨a综合色| 久久久久久久一区| 免费在线欧美视频| 欧美久久视频| 国产精品国产自产拍高清av| 欧美午夜电影网| 国产婷婷成人久久av免费高清 | 久久麻豆一区二区| 久久精品男女| 欧美精品一区二区三区蜜桃 | 夜夜嗨网站十八久久| 中文高清一区| 久久久国产精彩视频美女艺术照福利| 久久久久青草大香线综合精品| 久久婷婷国产综合精品青草| 亚洲高清在线精品| 羞羞答答国产精品www一本| 免费观看不卡av| 欧美日韩一区二区视频在线观看| 国产日韩精品一区二区三区 | 永久域名在线精品| 中文精品视频| 亚洲国产另类精品专区| 欧美在线观看天堂一区二区三区| 欧美黄免费看| 亚洲国产成人不卡| 欧美一区午夜精品| 一本大道久久精品懂色aⅴ| 久久精品成人一区二区三区蜜臀| 免费中文字幕日韩欧美| 久久精品av麻豆的观看方式| 亚洲伊人第一页| 在线综合欧美| 欧美午夜精品久久久久久孕妇| 91久久精品国产91性色| 噜噜噜噜噜久久久久久91 | 亚洲女与黑人做爰| 亚洲一区二区三区在线| 国产精品第十页| 欧美一区二区三区视频在线| 亚洲欧美日本日韩| 红桃视频亚洲| 亚洲欧洲久久| 国产精品久久久久久久久久久久久久| 亚洲女优在线| 久久先锋资源| 亚洲视频中文字幕| 欧美亚洲视频在线看网址| 影音先锋中文字幕一区| 亚洲激情在线观看| 欧美日一区二区在线观看| 欧美在线亚洲在线| 久久看片网站| 亚洲天堂av在线免费观看| 亚洲欧美综合精品久久成人| ●精品国产综合乱码久久久久| 亚洲剧情一区二区| 激情综合视频| 中国成人黄色视屏| 亚洲精品偷拍| 久久全球大尺度高清视频| 亚洲在线成人精品| 女女同性精品视频| 久久久久久久久久久久久9999| 欧美精品一区二区三区在线播放| 久久国产婷婷国产香蕉| 国产精品99一区| 亚洲乱码国产乱码精品精可以看 | 欧美欧美午夜aⅴ在线观看| 亚洲专区在线视频| 免费看av成人| 美女视频一区免费观看| 国产无一区二区| 亚洲欧美日韩国产一区二区| 99国产一区二区三精品乱码| 久久久综合网| 亚洲高清在线精品| 亚洲免费观看在线观看| 欧美激情综合| 这里只有视频精品| 久久精品国产免费观看| 伊人久久男人天堂| 免费日韩av片|