awkを使ってcsvのカラム数チェック
CSVの形をパパッとシェルスクリプトから確認したいときに、行数はwc -l
で簡単にできるけど、列数はどうするんだろうと思って調べたので、そのメモです。
シェルコマンドで列数をチェックする方法
例えば下のようなcsvファイルの列数をチェックしたいとします。
1,apple,120
2,orange,230
3,kiwi
4,banana,200
5,melon,1000
各行のカラム数のチェックはawkで下のようにします。
$ cat sample.csv | awk -F ',' '{print NF}'
3
3
2
3
3
-F ','
は区切り文字を指定するためのオプションで--field-separator
でも指定できるようです。