Linux--awk命令的簡單學習
阿新 • • 發佈:2019-01-24
Linux指令碼Shell命令的三大泰山北斗:grep
sed
awd
其中grep
sed
命令處理是文字檔案中的行單位,而awd
命令處理的是文字檔案中的列單位,這裡簡單記錄下awk命令的簡單學習。
- 學生各科成績的文字檔案
score.txt
~/python---> cat score.txt
name Chinese English Math
aaa 80 90 88
bbb 77 92 95
ccc 69 88 98
ddd 74 80 79
- 利用awk命令處理學生分數
#查詢單科分數,其中$0、$1、$2、$3、$4分別表示所有列、姓名列、Chinese列、English列、Math列
~/python---> awk '{print $1,$2}' score.txt
name Chinese
aaa 80
bbb 77
ccc 69
ddd 74
~/python---> awk '{print $1,$4}' score.txt
name Math
aaa 88
bbb 95
ccc 100
ddd 79
~/python---> awk '{print $0}' score.txt
name Chinese English Math
aaa 80 90 88
bbb 77 92 95
ccc 69 88 100
ddd 74 80 79
#列印倒數最後一行,倒數第二行的列,可利用內建變數NF,NF表示總列數
~/python---> awk '{print NF}' score.txt #每行總列數
4
4
4
4
4
~/python---> awk '{print $NF}' score.txt #最後一列內容
Math
88
95
100
79
~/python---> awk '{print $(NF-1)}' score.txt #倒數第二列內容
English
90
92
88
80
- 利用awk統計學生分數,求和or平均
#對第三列求和
~/python---> awk 'BEGIN{total=0}{total+=$3}END{print total}' score.txt
350
#求第三列平均分
~/python---> awk 'BEGIN{total=0}{total+=$3}END{print total/(NR-1)}' score.txt
87.5