91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在awk中使用循環

發布時間:2021-09-01 20:33:09 來源:億速云 閱讀:144 作者:chen 欄目:系統運維

本篇內容介紹了“怎么在awk中使用循環”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!



awk 腳本有三個主要部分:BEGINEND 函數(都可選),用戶自己寫的每次要執行的函數。某種程度上,awk 的主體部分就是一個循環,因為函數中的命令對每一條記錄都會執行一次。然而,有時你希望對于一條記錄執行多次命令,那么你就需要用到循環。

有多種類型的循環,分別適合不同的場景。

while 循環

一個 while 循環檢測一個表達式,如果表達式為 true 就執行命令。當表達式變為 false 時,循環中斷。

#!/bin/awk -f BEGIN {        # Loop through 1 to 10     i=1;    while (i <= 10) {        print i, " to the second power is ", i*i;        i = i+1;    }exit;}

在這個簡單實例中,awk 打印了放在變量 i 中的整數值的平方。while (i <= 10) 語句告訴 awk 僅在 i 的值小于或等于 10 時才執行循環。在循環最后一次執行時(i 的值是 10),循環終止。

do-while 循環

do-while 循環執行在關鍵字 do 之后的命令。在每次循環結束時檢測一個測試表達式來決定是否終止循環。僅在測試表達式返回 true 時才會重復執行命令(即還沒有到終止循環的條件)。如果測試表達式返回 false,因為到了終止循環的條件所以循環被終止。

#!/usr/bin/awk -fBEGIN {         i=2;        do {                print i, " to the second power is ", i*i;                i = i + 1        }        while (i < 10) exit;}

for 循環

awk 中有兩種 for 循環。

一種 for 循環初始化一個變量,檢測一個測試表達式,執行變量遞增,當表達式的結果為 true 時循環就會一直執行。

#!/bin/awk -f BEGIN {    for (i=1; i <= 10; i++) {        print i, " to the second power is ", i*i;    }exit;}

另一種 for 循環設置一個有連續索引的數組變量,對每一個索引執行一個命令集。換句話說,它用一個數組“收集”每一條命令執行后的結果。

本例實現了一個簡易版的 Unix 命令 uniq。通過把一系列字符串作為鍵加到數組 a 中,當相同的鍵再次出現時就增加鍵值,可以得到某個字符串出現的次數(就像 uniq--count 選項)。如果你打印該數組的所有鍵,將會得到出現過的所有字符串。

用演示文件 colours.txt(前一篇文章中的文件)來舉例:

name       color  amountapple      red    4banana     yellow 6raspberry  red    99strawberry red    3grape      purple 10apple      green  8plum       purple 2kiwi       brown  4potato     brown  9pineapple  yellow 5

這是 awk 版的簡易 uniq -c

#! /usr/bin/awk -f NR != 1 {    a[$2]++}END {    for (key in a) {                print a[key] " " key    }}

示例數據文件的第三列是第一列列出的條目的計數。你可以用一個數組和 for 循環來按顏色統計第三列的條目。

#! /usr/bin/awk -f BEGIN {    FS=" ";    OFS="\t";    print("color\tsum");}NR != 1 {    a[$2]+=$3;}END {    for (b in a) {        print b, a[b]    }}

你可以看到,在處理文件之前也需要在 BEFORE 函數(僅僅執行一次)中打印一列表頭。

“怎么在awk中使用循環”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

awk
AI

安新县| 库伦旗| 石首市| 昆山市| 于都县| 福鼎市| 皮山县| 克拉玛依市| 廊坊市| 和政县| 湘阴县| 高安市| 阿合奇县| 岑溪市| 哈密市| 安达市| 西乡县| 高雄县| 宁夏| 赣榆县| 新邵县| 长沙市| 义马市| 南雄市| 南平市| 沛县| 定西市| 曲水县| 通山县| 阳泉市| 仪陇县| 清流县| 安康市| 大悟县| 石柱| 开远市| 嫩江县| 西充县| 青海省| 灌南县| 峡江县|