スポンサーリンク
awkの組み込み変数NFで列(レコード)数を取得
※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-
参考:awk入門-使い方まとめ一覧-
NF変数で、処理中の列数が取得できます。
※MACターミナル(BSD系)での動作確認です。
参考:行数に応じた処理はNR変数が使えます。
参考:awkのNR変数で行数に応じた処理をする
例えば、下記のin.txtがあったとします。
$ cat in.txt L1,1,end L2,2,end L3,3,end L4,4,end
print出力で、NF変数を出力してみます。
先頭に処理中の列数を付与してみました。
$ cat in.txt | awk -F"," '{print NF "列で構成" ,$0}' 3列で構成 L1,1,end 3列で構成 L2,2,end 3列で構成 L3,3,end 3列で構成 L4,4,end
スポンサーリンク
NF変数を使って欠損している列が存在する行を見つける
欠損がおきているかをチェックする時にたまに使っています。
例えば、下記のin.txtがあったとします。
$ cat in.txt L1,1,end L2,2,end L3,3 L4,4,end
下記がサンプルコードになります。
3列で構成されていない行数をprint出力します。
$ cat sample.awk #!/bin/sh cat in.txt | awk ' BEGIN{ FS = "," } { if(NF != 3){ print NR "行目が3列になっていません" } } '
下記が実行結果になります。
$ ./sample.awk 3行目が3列になっていません
スポンサーリンク