詢問 awk 陣列

發布 社會 2024-06-30
6個回答
  1. 匿名使用者2024-01-30

    在 AWK 中,陣列是關聯陣列,其特徵在於:

    1. 陣列的下標可以是整數、負數甚至字串 2。陣列的下標可以是不連續的。

    如果你了解 Python,你可以把它看作是 Python 中的字典。

    1.就是為每門課程建立乙個計數器,讀一次,在計數器上加乙個,如果沒有課程,建立計數器的值並將其設定為1

    它基於 C 語言,它應該類似於 C 機制。 您可以找到有關詳細資訊的資訊。

    這意味著陣列 a 中索引為 $3 的元素本身被分配了 $3。 $3 這裡是每行的第三個字段,如果是第一行,則為“os”。

  2. 匿名使用者2024-01-29

    1.這怎麼能是統計的?

    number[$i]++ 首先將所有值相加。

    然後將輸出分類為 for(number in course)。

    陣列的機制是什麼樣的? 例如,a[key]=1,它的鍵和 1 是如何儲存的?

    遇到同樣的積攢1,不知道裡面是怎麼收納的,3如果 a[$3]=$3 是什麼意思?

    這並不意味著什麼。

  3. 匿名使用者2024-01-28

    awk 的陣列實際上很容易理解。 在一般程式語言中,陣列的下標只能是乙個數字,例如 a[3],它表示陣列 a 的第四個元素。

    但是,與 AWK 不同的是,下標可以是任何字元或字串。 例如,a[bob] 表示陣列 a 的元素,它有乙個下標"bob"。

    a 1b 2

    c 3a 4

    b 5a 6

    如果我們想計算以 a 開頭的行之後的數字之和,即“1+4+6”,我們如何使用 awk:

    cat | awk ‘

    elae}end’

    命令中有乙個陣列,當讀取第一行時,$1 是 “a”,array[a] 以 “”(空字串)開頭,所以! array[a] 為 true,則 array[a]=1,並且該陣列具有第乙個元素 array[a]。

    同理,讀取第二行後,結果是 array[a]=1,array[b]=2,陣列有 2 個元素。

    在第三行之後,結果是 array[a]=1,array[b]=2,array[c]=3,陣列有 3 個元素。

    在第四行之後,結果是 array[a]=5(1+4,4 在第四行是 $2),array[b]=2,array[c]=3

    在第五行之後,結果是 array[a]=5, array[b]=7, array[c]=3

    在第六行之後,結果是 array[a]=11, array[b]=7, array[c]=3

    end 表示在讀取檔案的所有行後,執行的語句列印出陣列的第乙個元素 Array[A]。

  4. 匿名使用者2024-01-27

    awk 陣列不是傳統意義上的陣列,所以一開始很難理解。 awk的陣列其實就是乙個字典,它叫雜湊表,雜湊表等等,是一回事。 如果你把關鍵和價值理解得好,你自然會明白。

  5. 匿名使用者2024-01-26

    當你學習AWK時,以前的基礎是什麼? AWK是一種動態執行語言,沒有型別這樣的東西,所以裡面可以呼叫任何東西。

  6. 匿名使用者2024-01-25

    AWK 逐行處理文字資料。

    AWK 中的術語將行稱為記錄; 還可以根據分隔符將記錄拆分為多個字段。

    0 表示整行(一條記錄)。

    a[$0]++ 用於分別計算不同數量的記錄。 也就是說,將相同的 $0 內容相加。

    示例:檔案的內容為:

    111 abc

    222 abc

    333 efg

    要獲得以下結果(即,計算第二個字段出現的次數):

    abc 2efg 1

    這可以用 awk 這樣寫:

    awk ' end'

    解析:$2 表示第二個字段,w[abc] 表示 abc 出現的次數,w[efg] 表示 efg 出現的次數。 當 $2=abc 時,新增 w[abc]; 當 $2=efg 時,將 w[efg] 相加。

    這樣,w 是所有 $2 欄位的集合,最後通過 for 迴圈列印出每個欄位的出現次數。

    實際上,如果你真的理解了這一點,互相推論,其他一切都會如此。

相關回答
13個回答2024-06-30

這兩句話的區別在於:

第一句話a:只是每個元素可以分成4個更小的元素。 >>>More

20個回答2024-06-30

arr(n) = cells(k, "k").行這裡獲取行號是沒有問題的,問題是陣列的上限可能會溢位。 >>>More

18個回答2024-06-30

首先,我會明確地告訴你,選項 c 是正確的,選項 A strcpy 是乙個字串複製函式,它可以將字串 “China” 複製到字元陣列 str2 中並覆蓋 str1 中的 “beijing”,選項 c strcat 是乙個字串連線函式,可以將 “China” 連線到“beijng”的後面。 因此,C. >>>More

17個回答2024-06-30

p5[1] 取第二個字元的位址,即'b',列印結果為b,取p5[0]+1"def",列印結果為 def >>>More

15個回答2024-06-30

如果是我,我不會“同意”讓別人叫我“老婆”。 >>>More