久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      AWK 工作原理

      本篇文章我們主要為大家介紹 AWK 是如何工作的。

      AWK 工作流程可分為三個部分:

      • 讀輸入文件之前執(zhí)行的代碼段(由BEGIN關鍵字標識)。
      • 主循環(huán)執(zhí)行輸入文件的代碼段。
      • 讀輸入文件之后的代碼段(由END關鍵字標識)。

      命令結構:

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

      下面的流程圖描述出了 AWK 的工作流程:

      AWK 工作原理

      • 1、通過關鍵字 BEGIN 執(zhí)行 BEGIN 塊的內容,即 BEGIN 后花括號 {} 的內容。
      • 2、完成 BEGIN 塊的執(zhí)行,開始執(zhí)行body塊。
      • 3、讀入有 n 換行符分割的記錄。
      • 4、將記錄按指定的域分隔符劃分域,填充域,$0 則表示所有域(即一行內容),$1 表示第一個域,$n 表示第 n 個域。
      • 5、依次執(zhí)行各 BODY 塊,pattern 部分匹配該行內容成功后,才會執(zhí)行 awk-commands 的內容。
      • 6、循環(huán)讀取并執(zhí)行各行直到文件結束,完成body塊執(zhí)行。
      • 7、開始 END 塊執(zhí)行,END 塊可以輸出最終結果。

      開始塊(BEGIN)

      開始塊的語法格式如下:

      BEGIN {awk-commands}

      開始塊就是在程序啟動的時候執(zhí)行的代碼部分,并且它在整個過程中只執(zhí)行一次。

      一般情況下,我們可以在開始塊中初始化一些變量。

      BEGIN 是 AWK 的關鍵字,因此它必須是大寫的。

      注意:開始塊部分是可選的,你的程序可以沒有開始塊部分。

      主體塊(BODY)

      主體部分的語法格式如下:

      /pattern/ {awk-commands}

      對于每一個輸入的行都會執(zhí)行一次主體部分的命令。

      默認情況下,對于輸入的每一行,AWK 都會執(zhí)行命令。但是,我們可以將其限定在指定的模式中。

      注意:在主體塊部分沒有關鍵字存在。

      結束塊(END)

      結束塊的語法格式如下:

      END {awk-commands}

      結束塊是在程序結束時執(zhí)行的代碼。 END 也是 AWK 的關鍵字,它也必須大寫。 與開始塊相似,結束塊也是可選的。

      實例

      先創(chuàng)建一個名為 marks.txt 的文件。其中包括序列號、學生名字、課程名稱與所得分數(shù)。

      1)    張三    語文    80  2)    李四    數(shù)學    90  3)    王五    英語    87

      接下來,我們將使用 AWK 腳本來顯示輸出文件中的內容,同時輸出表頭信息。

      $ awk 'BEGIN{printf "序號t名字t課程t分數(shù)n"} {print}' marks.txt

      執(zhí)行以上命令,輸出結果如下:

      序號    名字    課程    分數(shù)  1)    張三    語文    80  2)    李四    數(shù)學    90  3)    王五    英語    87

      程序開始執(zhí)行時,AWK 在開始塊中輸出表頭信息。在主體塊中,AWK 每讀入一行就將讀入的內容輸出至標準輸出流中,一直到整個文件被全部讀入為止。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號