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 ...