<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Linux 文本分析 | awk

      awk 是 Linux 中非常強大的文本分析編程工具

      awk 的輸入可以是標準輸入,文件或其他命令的輸出

      awk 將輸入逐行讀入,以空格為默認分隔符進行切割并處理


      基礎用法

      篩選每一行的指定列

      # 篩選第二列內容
      # print 表示打印
      echo "name1 china 22 address1" | awk '{print $2}'
      
      echo -e "name1 china 22 address1\nname2 china 18" | awk '{print $1}'
      
      # 打印多列,用逗號分隔
      echo "name1 china 22 address1" | awk '{print $1,$2}'
      
      • awk 中默認以空格或 tab 鍵分割數據

      • $0 表示所有列,$1 表示第一列,$2 表示第二列,以此類推

      如果每一行的列不一致,而又想要最后一列數據,

      # NF 表示每一行的字段數,$NF 表示最后一列
      # 取倒數第二列則用 $(NF-1)
      echo "name1 china 22 address1" | awk '{print $NF}'
      
      • 常用的內置變量有:

        NF 每一行字段數

        FILENAME 當前文件名

        FS 字段分隔符,默認是空格和制表符。

        RS 行分隔符,用于分割每一行,默認是換行符。

        OFS 輸出字段的分隔符,用于打印時分隔字段,默認為空格。

        ORS 輸出記錄的分隔符,用于打印時分隔記錄,默認為換行符。

        OFMT 數字輸出的格式,默認為%.6g。


      自定義分隔符

      # -F 參數,指定分隔符為豎線
      echo "name1|china|22|address1" | awk -F '|' '{print $(NF-1)}'
      

      條件

      正則匹配

      # 正則在兩個斜線中間
      # 下面將篩選包含 ‘china’ 行的第一列
      echo "name1|china|22|address1" | awk -F '|' '/china/ {print $1}'
      

      邏輯判斷

      # 篩選奇數行的第一列
      echo "name1|china|22|address1" | awk -F '|' 'NR % 2 == 1 {print $1}'
      
      # 根據每個字段的內容篩選內容
      echo "name1|china|22|address1" | awk -F '|' '$2 == "china" && $3 <= "22" {print $1}'
      

      if else

      # if 語句在花括號內部
      echo "name1|china|22|address1" | awk -F '|' '{if ($2 == "china" && $3 <= "22") print $1}'
      
      # if else 結構
      echo "name1|china|22|address1" | awk -F '|' '{if ($2 == "japan") print $1; else print "--"}'
      

      函數

      # 將篩選內容轉換為大寫
      echo "name1|china|22|address1" | awk -F "|" '{print toupper($2)}'
      
      • 常用的內置函數有:

        tolower() 字符轉為小寫

        length() 返回字符串長度

        substr() 返回子字符串

        sin() 正弦

        cos() 余弦

        sqrt() 平方根

        rand() 隨機數

      • 還有其他函數,如時間函數,字符串函數等


      begin...end

      前后加固定內容

      # BEGIN 和 END 必須是大寫
      # 在數據第一行顯示列名
      echo "name1|china|22|address1" | awk -F "|" 'BEGIN {print "name|country"} {print $1"|"toupper($2)}'
      
      # 最后一行輸出虛線結尾
      echo "name1|china|22|address1" | awk -F "|" 'BEGIN {print "name|country"} {print $1"|"toupper($2)} END {print "-
      -----"}'
      
      • aws 先執行 BEGIN,然后讀取文件處理數據,最后執行 END

      自定義變量

      echo "name1 china 22 address1" | awk 'BEGIN {count = 0; count++} {print $1,$2} END {print "count is", count}'
      

      循環語句

      cat test.txt | awk 'BEGIN {count = 0} {name[count] = $1 count++} END {for (i = 0; i < NR; i++) print i,name[i]}'
      
      • awk 中同樣支持循環語句:

        while

        do...while

        for

        break

        continue


      awk 調用方式

      命令行執行

      在命令行中執行 awk 命令

      cat test.txt | awk '{print $0}'
      

      shell 腳本方式

      類似 shell 文件,將 awk 命令寫入 sh 文件

      將首行的解釋器改為 #!/bin/awk

      awk 命令調用方式

      將 awk 命令寫入 sh 文件,然后用 awk 命令調用

      # awk-command.sh 是 awk 命令集文件
      # test.txt 是需要處理的數據文件
      awk -f awk-command.sh test.txt
      


      awk 是一種編程語言,通用的變量定義,條件語句,循環語句,各種數據結構各種內置函數都有。

      用到再慢慢積累

      posted @ 2023-06-07 16:42  菜烏  閱讀(113)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产午夜福利在线视频| 无码日韩精品一区二区三区免费| 国内自拍视频在线一区| 91偷自国产一区二区三区| 伊人久久大香线蕉网av| 国产成人一区二区三区在线| 亚洲天堂网中文在线资源| 日本免费人成视频在线观看| 成人拍拍拍无遮挡免费视频| 亚洲区中文字幕日韩精品| 一区二区三区四区精品视频| 一区二区三区鲁丝不卡| 亚洲欧美日韩在线码| 精品少妇后入一区二区三区| 久久久无码精品午夜| 97午夜理论电影影院| jk白丝喷浆| 天堂网在线观看| 97色成人综合网站| 平凉市| 18禁极品一区二区三区| 国产成人永久免费av在线| 精品国产性色av网站| 国色天香成人一区二区| 亚洲综合精品中文字幕| 永善县| 韩国三级+mp4| 99e久热只有精品8在线直播| 国产一二三五区不在卡| 亚洲精品一区二区三区中文字幕| 国产69精品久久久久乱码免费| 亚洲av色香蕉一区二区三| 精品久久久久久无码专区不卡| 麻豆成人传媒一区二区| 久久久久国产精品熟女影院| 男人和女人做爽爽视频| 亚洲精品无码日韩国产不卡av| 久久精品国产色蜜蜜麻豆| 性欧美乱熟妇xxxx白浆| 这里只有精品免费视频 | 四虎成人高清永久免费看|