awk学習ノートの行と和列の和を求める
1.テストのテキスト内容awk 1.t
2.テストスクリプトt.sh
3.テスト結果
4.テストの結論
今回の実験から,1)BEGIN/ENDの使い方2)行の和を求める方法と,列の和を求める方法3)印刷形式の制御を学んだ.
5.テスト中に発生した問題と疑問
印刷結果を見て
疑問はここにありますが、なぜ変数を定義するときにカッコを大きくしないとテキストの内容が再び印刷されるのでしょうか.awkで{}は何の意味を表しますか?
ネット上でやっと関連資料を見つけました.私は直接引用します.
- [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{
- print "name\tChinese\tEnglish\tMath\tTotal"
- print "-------------------------------------"
- }
- {total=(($2+$3+$4))}
- {print $1"\t"$2"\t"$3"\t"$4"\t"total}
-
- {(C+=$2)(E+=$3)(M+=$4)(T+=(($2+$3+$4)))}
-
- END{
- print "-------------------------------------"
- print "Count\t"C"\t"E"\t"M"\t"T
- }
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{
- print "name\tChinese\tEnglish\tMath\tTotal"
- print "-------------------------------------"
- }
- # ,
- total=(($2+$3+$4))
- {print $1"\t"$2"\t"$3"\t"$4"\t"total}
-
- {(C+=$2)(E+=$3)(M+=$4)(T+=(($2+$3+$4)))}
-
- END{
- print "-------------------------------------"
- print "Count\t"C"\t"E"\t"M"\t"T
- }
印刷結果を見て
- [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で{}は何の意味を表しますか?
ネット上でやっと関連資料を見つけました.私は直接引用します.
- 、 、 , , 。 :
-
-
-
-
-
-
-
-