Netassist Blog

awk入門②

こんにちは。yasakumaです。
以前awkのコマンドの紹介をした事がありましたが、
今回は前回書けなかった、自分なりによく使う使い方を記載していこうと思います。

■適当なファイルを準備

[your-assist@yasakuma ~]$ cat awk-nyumon2.txt
tokyo    takaosan  1021:sato
kanagawa hakone    1021:sasaki
kanagawa hiratsuka 1022:yasa
chiba    naritasan 1020:yasa
ibaraki  senbako   1021:sato
gunma    kusatsu   1020:sasaki
saitama  hanno     1021:yasa

■2列目を抜き出したい場合

[your-assist@yasakuma ~]$ cat awk-nyumon2.txt | awk '{print $2}'
takaosan
hakone
hiratsuka
naritasan
senbako
kusatsu
hanno

■一番後ろの列を抜きだしたい場合

[your-assist@yasakuma ~]$ cat awk-nyumon2.txt | awk '{print $NF}'
1021:sato
1021:sasaki
1022:yasa
1020:yasa
1021:sato
1020:sasaki
1021:yasa

■後ろから2列目を抜き出したい場合

[your-assist@yasakuma ~]$ cat awk-nyumon2.txt | awk '{print $(NF -1)}'
takaosan
hakone
hiratsuka
naritasan
senbako
kusatsu
hanno

前から何列目か数えるのが難しかったり後ろから何列目かはわかるんだけどなー。
等の時に活躍してくれると思います。

■特定の列を合算したい場合

適当なファイルを準備

[your-assist@yasakuma AWK]$ ls -l
合計 25600
-rw-rw-r-- 1 your-assist your-assist 3145728  1月  1  2020 test_1.txt
-rw-rw-r-- 1 your-assist your-assist 2097152  1月  2  2020 test_2.txt
-rw-rw-r-- 1 your-assist your-assist 1048576  1月  3  2020 test_3.txt
-rw-rw-r-- 1 your-assist your-assist 4194304  1月  1 12:00 test_4.txt
-rw-rw-r-- 1 your-assist your-assist 1048576  1月  1 12:00 test_5.txt
-rw-rw-r-- 1 your-assist your-assist 1048576  1月  1 13:00 test_6.txt
-rw-rw-r-- 1 your-assist your-assist 7340032  1月  1 14:00 test_7.txt
-rw-rw-r-- 1 your-assist your-assist 1048576  1月  1 15:00 test_8.txt
-rw-rw-r-- 1 your-assist your-assist 5242880  1月  1 16:00 test_9.txt

ls結果で表示されるファイル容量を合算(5列目を合算)

[your-assist@yasakuma AWK]$ ls -l | awk ‘{total +=$5}; END{print total}’
26214400

すごいですね。
単位をMBにあわせて見やすくしてみます。

[your-assist@yasakuma AWK]$ ls -l | awk ‘{total +=$5}; END{print total/1024/1024 “MB”}’
25MB

凄いですねawk!
もっと色々使い方あるかと思うので、何か発見しましたらまた記事にしていきたいと思います。

本日はこの辺で失礼致します。