今回はAWKで実際の温度データを処理してみます。ここでは日本の真ん中あたりにある長野県松本市の気温データを使用します。
出典:気象庁ホームページ
この年間の温度データをタブ区切りテキストとして保存し利用します。ファイル名はdata.txtとしこれまでと同じようにデスクトップのsampleディレクトリに入れておきます。なお、温度データ内に幾つかの記号が含まれているため、それらの記号は削除してあります。また、執筆時点(2024/12)でのデータとなっているため一部の温度データは暫定となっています。
data.txtの中身は以下のようになっています。
○必要なデータを表示
これまでのAWKの復習も兼ねて順番に処理していきます。まず、全データを表示して見ます。これは以下のようにコマンドを入力します。
awk {print} data.txt
データによっては先頭の1行が不要な場合があります。項目を示すヘッダーがついていることがありますが、データを処理する場合は不要なことがあります。
awk 'NR>1{print}' data.txt
それでは次に2000年より後のデータを表示してみます。この場合、年数は最初の1列目になっていますので、この値を読み込んで2000年より後のデータかどうかを判別すればよいことになります。最初の1列目の値は$1に入りますので以下のように$0>2000として判断します。その際、先頭の1行もスキップする必要があるので&&を使って複数の条件を満たすように指定します。
awk 'NR>1&&$0>2000{print}' data.txt
1月の気温だけを表示するには以下のように指定します。
awk 'NR>1{print $2}' data.txt
年数を表示しないとわからない場合は以下のように$1を加えます。
awk 'NR>1{print $1,$2}' data.txt
データが何年分あったか確認したい場合は以下のようにします。今回のデータの場合、先頭の1行分を除く必要があるため行番号を示すNRから1を引きます。
awk 'END{print NR-1}' data.txt
無理にAWKで処理しなくてもwcコマンドとパイプを使う方法もあります。
awk 'NR>1{print $1}' data.txt | wc -l
1月の最低気温と最高気温を求める
次に最低気温と最高気温を求めてみます。
AWKで1月のデータを出力しsortコマンドで並び替えれば簡単にできます。
awk 'NR>1{print $2}' data.txt | sort -n
上記のコマンドではすべてのデータが表示されてしまいます。必要なのは最低気温、つまり先頭1行だけです。この場合はheadコマンドを使って1行だけ抜き出します。
awk 'NR>1{print $2}' data.txt | sort -n | head -n 1
最高気温の場合は先頭ではなく最終行なのでtailコマンドを使えばよいことになります。
awk 'NR>1{print $2}' data.txt | sort -n | tail -n 1
.











![[USBで録画や再生可能]Tinguポータブルテレビ テレビ小型 14.1インチ 高齢者向け 病院使用可能 大画面 大音量 簡単操作 車中泊 車載用バッグ付き 良い画質 HDMI端子搭載 録画機能 YouTube視聴可能 モバイルバッテリーに対応 AC電源・車載電源に対応 スタンド/吊り下げ/車載の3種類設置 リモコン付き 遠距離操作可能 タイムシフト機能付き 底部ボタン 軽量 (14.1インチ)](https://m.media-amazon.com/images/I/51-Yonm5vZL._SL500_.jpg)