awk學習筆記之行求和和列求和

2021-09-03 10:53:12 字數 2357 閱讀 8072

1.測試的文字內容awk1.t

[root@demo ~]# cat awk1.t  

reed  100 90 100 

reed  98  92 100 

huih  100 90 100 

deer  99  91  99 

hjl   92  100 80 

gsl   80  80  80 

zww   85  85  85 

swe   85  85  85 

2.測試的指令碼t.sh

[root@demo ~]# cat t.sh  

#!/bin/awk -f 

# just for testing the awk 

# 15/11/2012 

# reed 

begin   

end 

3.測試結果

[root@demo ~]# ./t.sh awk1.t  

name    chinese english math    total 

-------------------------------------

reed    100     90      100     290 

reed    98      92      100     290 

huih    100     90      100     290 

deer    99      91      99      289 

hjl     92      100     80      272 

gsl     80      80      80      240 

zww     85      85      85      255 

swe     85      85      85      255 

-------------------------------------

count   739     713     729     2181 

4.測試結論

從這次實驗當中自己學到了1)begin/end的用法2)如何進行行的求和以及列求和3)列印格式控制

5.測試過程中遇到的一些問題和疑問

#!/bin/awk -f 

# just for testing the awk 

# 15/11/2012 

# reed 

begin 

# 注意看這裡,沒有大括號total=(($2+$3+$4))

end 

再看列印的結果

[root@demo ~]# ./t.sh awk1.t  

name    chinese english math    total 

-------------------------------------

reed  100 90 100 

reed    100     90      100     290 

reed  98  92 100 

reed    98      92      100     290 

huih  100 90 100 

huih    100     90      100     290 

deer  99  91  99 

deer    99      91      99      289 

hjl   92  100 80 

hjl     92      100     80      272 

gsl   80  80  80 

gsl     80      80      80      240 

zww   85  85  85 

zww     85      85      85      255 

swe   85  85  85 

swe     85      85      85      255 

-------------------------------------

count   739     713     729     2181 

疑問就存在這裡了,為什麼定義變數的時候不加大括號就會再一次列印文字內容的呢,加了之後就不會的呢?在awk中{}表示什麼意義呢?

操作由一人或多個命令、函式、表示式組成,之間由換行符或分號隔開,並位於大括號內。主要有四部份: 

變數或陣列賦值 

輸出命令 

內建函式 

控制流命令 

學習筆記 hive 之行拆列explode

1 explode explode array 列表中的每個元素生成一行 explode map map中每個key value對,生成一行,key為一列,value為一列 限制 1 no other expressions are allowed in select select pageid,e...

CUDA學習筆記(2)對任意向量長度求和

使用128個執行緒塊和128個執行緒來完成此項操作。值得注意的是,在編譯過程中,發現這個庫一出現就會導致error msb3721出現。雖然之前了解到msb3721往往是由於有些引用到的庫出問題,但是這個基本的庫難道都沒法用嗎?但是也只能放棄用cout輸出,而改用printf,結果成功。includ...

演算法學習筆記 4 二進位制求和

給定兩個二進位制數,求他們的和 結果還是二進位制 python中有相應的處理二進位制數,十進位制數的函式。首先使用int 方法將二進位制數轉化成十進位制數。在bin 方法將十進位制數轉化成二進位制數。bin 方法返回的二進位制數前面有0b標記,使用replace 方法將0b替換成none。最後將結果...