日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Awk使用方法简介

發(fā)布時間:2025/3/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Awk使用方法简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

==================AWK===================
AWK簡介:awk是一個強大的文本分析工具,相對于grep的查找,sed的編輯,awk在其對數據分析并生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入, ? ? ? ? ? ? ? ? ? 以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理;awk有3個不同版本: awk、nawk和gawk,未作特別說明,一般指gawk,gawk 是 AWK 的
? ? ? ? ? ? ? ? ? GNU版本。

(1)域分隔符:awk在沒有使用-F指定分割符時,默認以空格為分割符;
       ? ? 域分割 $0代表文本內容全文顯示;
        ?$1 代表分割第一個域;
? ? ? ? ? ? ? ? ? ? ? ? ? $2 代表分割第二個域;
        ?......
        awk -F: 分割符為‘:’
        eg: cat /etc/passwd | awk -F: '{print $1,$2,}'

? ? ? ? ? ? ? ?

? (2) 打印報告頭:
    ?eg: cat /etc/passwd | awk -F: 'BEGIN{print "This is system user"}{print $1}' | more ? ?

? ? ? ? ? ? ??

? 打印結尾:
    eg: cat /etc/passwd | awk -F: 'BEGIN{print "This is system user"}{print $1}END{"=================="}' | more

      ?cat /etc/passwd |awk -F: ‘BEGIN{print “===============”}{print $1}END{print “==========”}’ ?|more

? ? ? ? ? ? ? ?

? ??

(3) awk 中的正則表達式:

   1>匹配 ~
      eg: cat /etc/passwd |awk '{if($1~/root/) print $0}'
        ? cat /etc/passwd |awk ‘$0~/root/’

? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ?? 2>精確匹配:
      eg: cat /etc/passwd | awk -F: '$1=="root"{print $0}' ??

? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ??? 3> 不匹配:
        eg: cat /etc/passwd |awk '{if($1!~/root/) print $0}'
          ? cat /etc/passwd | awk '$0 !~ /root/'

? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ??? 4>小于,小于或等于:
        eg: cat /etc/passwd | awk -F: '{if($3<200) print $3}'
          ? cat /etc/passwd | awk -F: '{if($3<=200) print $3}' ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ?

  ? 5>大于,大于或等于:
      eg: cat /etc/passwd | awk -F: '{if($3>500) print $3}'
        ?cat /etc/passwd | awk -F: '{if($3>=500) print $3}'

? ? ? ? ? ? ? ? ?

? ? ? ? ??? 6> 匹配多個關鍵字:
      eg:
        cat /etc/passwd | awk -F: '$1 ~ /(root|user)/ {print $0}'

? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ?? 7> 匹配行首:
        eg: cat test |awk -F: ‘{if($1~/^root/) print $0}’
          ? cat test |awk -F: ‘$1~/^root/ {print $0}’

? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ?? 8> awk 使用 && ||
          eg: cat /etc/passwd | awk -F: '{if($1=="root" && $5=="root") print $0}'
            ? cat /etc/passwd | awk -F: '{if($1=="root" || $1=="sfsdfdsfds") print $0}'?

? ? ? ? ? ? ? ? ? ??

?

(4) awk 中的NF與NR:
  NF:瀏覽記錄的域的個數(統(tǒng)計列的段數)
  NR:統(tǒng)計列的行號
  eg: cat test |awk -F: ‘{print NF}’ 輸出一共有多少列
    ?cat test |awk -F: ‘{print NF,NR}’ 輸出一共有多少列及其行號
    ?cat test |awk -F: ‘{print NR,$0}’ 輸出全部內容,并在其前輸出行號
    ?awk '{if(NR<10 && $1~/root/) print $1}' /etc/passwd 行號小于10的,使用$1匹配root關鍵字
    ?cat /etc/passwd | awk -F: '{print $NF}' 打印每段的最后一段 ??

? ? ? ? ? ?

? ? ? ? ? ?

? (5)awk替換:
    eg:cat /etc/passwd | awk 'gsub(/root/,"alvinzeng") ' 將文中所有的root替換成alvinzeng,并輸出了所有匹配的行

? ? ? ? ? ? ? ?

?

轉載于:https://www.cnblogs.com/xiaocheche/p/7602204.html

總結

以上是生活随笔為你收集整理的Awk使用方法简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。