awk的陣列我始終是不會用,awk 陣列詳解

時間 2022-09-14 20:05:19

1樓:匿名使用者

awk的陣列其實很好理解。一般程式語言的陣列,其下標只能是數字,比如a[3],表示陣列a的第四個元素。

但是awk的不同,其下標可以是任意字元或者字串。比如a[bob],表示陣列a的一個元素,它的下標是"bob"。

比如有個文字檔案alex.txt:

a 1b 2

c 3a 4

b 5a 6

如果我們想統計以a開頭的行後面的數字之和,就是「1+4+6」,我們用awk怎麼做呢:

cat alex.txt | awk 『

elae}end』

命令中有個陣列array,當讀取alex.txt第一行時,$1是「a」,array[a]剛開始是「」(空字串),所以!array[a]就為真,那麼array[a]=1,陣列array就有了第一個元素array[a].

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

第三行之後結果是array[a]=1, array[b]=2, array[c]=3,陣列array就有了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].

2樓:我叫熊拍拍

awk的陣列不是傳統意義上的陣列,所以開始比較難理解。awk的陣列實際上是一個字典,也就是所說的雜湊表,雜湊表等等,是一個東西。理解好key與value自然就理解了。

3樓:匿名使用者

你學習awk的時候,前面的基礎如何?awk屬於動態執行語言,沒有型別這種說法,因此什麼東西都可以往裡面招呼。

我使用awk一般是處理一些文字資料,具體語法方面我也說不清,以前看過一些比較好的講awk,推薦你去看看:

4樓:六子視界

cu shell板塊裡的力哥???

awk 陣列詳解

5樓:良玉小帝

num是陣列

x只是num裡的值,一直for迴圈而已

for i in `cat file` 雷同這種語法格式是awk預設的

用awk還是存入陣列處理好?

6樓:匿名使用者

設文字檔案為test.txt

則cat test.txt | awk '' 既可

7樓:匿名使用者

awk '' ./test

我怎樣才能在awk陣列的長度嗎

8樓:司馬刀劍

用awk的內建函式 length 就可以了。

length(arr)

awk怎麼把一個字串變成陣列

9樓:匿名使用者

split(s,a,sep)

使用分隔符sep將字串s分隔成陣列a

C語言中,對於二維陣列,我只想列印其中某一行的資料,可以嗎

不可以 d 代表int 型的資料,a 1 這樣是第二行的地址 只能以一個printf出來 include stdio.h int main int i for i 0 i 4 i printf d a 0 i a 0 才是第一行 printf n for i 0 i 4 i printf d a 1...

vba陣列賦值,VBA陣列的定義與賦值

1 開啟一個excel的檔案,在 中輸入簡單的 比如學生身高 如下圖所示。2 接著,在 中輸入一維陣列的說明文字,滑鼠左鍵單擊 開發工具 選單標籤,在vba控制元件下拉選單中,並選擇按鈕控制元件,如下圖所示。3 然後,在 中繪製出按鈕控制元件,並修改控制元件名稱,比如使用一維陣列的名稱,如下圖所示。...

定義二維陣列4 4,二維陣列中的陣列元素都用鍵盤賦值。求出該二維陣列中主對角線的和C語言

include stdio.h include conio.h include stdlib.h main for i 0 i 4 i printf 此矩陣主對角線的和為 d n num include define m 4 int main int i,j,a m m sum 0 for i 0 ...