<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## AWK題目練習 ### awk工作原理 ## AWK工作原理 - 第一步:執行BEGIN{action;… }語句塊中的語句 - 第二步:從文件或標準輸入(stdin)讀取一行,然后執行pattern{action;… }語句塊,它逐行掃描文件,從第 一行到最后一行重復這個過程,直到文件全部被讀取完畢。 - 第三步:當讀至輸入流末尾時,執行END{action;…}語句塊BEGIN語句塊在awk開始從輸入流中讀取行之前被執行,這是一個可選的語句塊,比如變量初始化、打印輸出表格的表頭等語句通常可以寫在BEGIN語句塊中END語句塊在awk從輸入流中讀取完所有的行之后即被執行,比如打印所有行的分析結果這類信息匯總都是在END語句塊中完成,它也是一個可選語句塊pattern語句塊中的通用命令是最重要的部分,也是可選的。如果沒有提供pattern語句塊,則默認執行{ print },即打印每一個讀取到的行, awk讀取的每一行都會執行該語句塊 ### awk 內置變量 ARGC 命令行參數個數 ARGV 命令行參數排列 ENVIRON 支持隊列中系統環境變量的使用 FILENAME awk瀏覽文件名 FNR 瀏覽文件的記錄數 FS 設置輸入域分隔符,等價于命令行-F選項 NF 瀏覽記錄的域個數 NR 已讀的記錄數 OFS 輸出域分隔符 ORS 輸出例句分隔符 RS 控制記錄分隔符 1. 打印出/etc/passwd中個的第一個域,并在前面追加"賬號" ```shell cat /etc/passwd | awk -F ":" '{print "賬號"$1}' ``` 2. 打印出/etc/passwd 第三個域和第四個域 ```shell cat /etc/passwd | awk -F ":" '{print $3,$4}' ``` 3. 匹配/etc/passwd 第三域大于100的顯示出完整信息 ```shell cat /etc/passwd | awk -F ":" '{if($3 > 100) {print $0}}' ``` 4. 打印行號小于15的,并且最后一域匹配bash的信息. NR表示行號。NF表示最后一個域 ~ 正則匹配符號。 // 正則表達式開始和結束符號 ```shell cat /etc/passwd | awk -F ":" '{if($NR < 15 && $NF~/bash/) {print $0}}' ``` 5. 打印出第三域數字之和 ```SHELL awk -F ":" 'BEGIN{sum =0} {sum = sum+$3} END {print sum}' ``` 6. 請匹配passwd最后一段域bash結尾的信息,有多少條 ```shell awk -F ":" '{if( $NF~/bash/) {i++}} END {print i }' ``` 7. 請同時匹配passwd文件中,帶mail和bash的關鍵字的信息 ```shell cat /etc/passwd | awk -F ":" '{if( $NF~/bash/ || $NF~/mail/) {print $0}} ' ``` 8. 統計/etc/fstab文件中每個文件系統類型出現的次數 /^UUID/:模式匹配以UUID開頭的行? fs[$3]++:定義fs[]為關聯數組下標是每條記錄的第3個字段,數組的值是出現的次數 for(i in fs){print i,fs[i]}:在每條記錄都處理完之后,用for循環遍歷數組,打印下標(文件類型)和數組元素值(文件類型出現的次數) ```shell awk '/^UUID/{fs[$3]++}END{for(i in fs){print i,fs[i]}}' /etc/fstab ``` ### nginx日志分析 日志格式 `'$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"' ` **日志記錄:**27.189.231.39 - - [09/Apr/2016:17:21:23 +0800] "GET /Public/index/images/icon_pre.png HTTP/1.1" 200 44668 "http://www.test.com/Public/index/css/global.css" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" "-" - 統計日志最多的10個IP ```shell awk '{arr[$1]++} END {for(i in arr) {print arr[i]}}' access.log | sort -k1 -nr | head -n10 ``` - 統計日志訪問次數大于100次的IP ```shell awk '{arr[$1]++} END{for (i in arr) {if(arr[i] > 100){print $i}}}' access.log ``` - 統計2016年4月9日內訪問最多的10個ip ```shell awk '$4>="[09/Apr/2016:00:00:00" && $4<="[09/Apr/2016:23:59:59" {arr[i]++} END{print arr[i]}' |sort -k1 -nr|head -n10 ``` - 統計訪問最多的十個頁面 ```shell awk '{a[$7]++}END{for(i in a)print a[i],i|"sort -k1 -nr|head -n10"}' access.log ``` - 統計訪問狀態為404的ip出現的次數 ```shell awk '{if($9~/404/)a[$1" "$9]++}END{for(i in a)print i,a[i]}' access.log ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看