230行目で値が0の列数を数えたいです。どうすればいいですか?
これは列230のゼロ個数を与える。
awk ' $230==0{c0++};END{print "Missing: "c0;}' file
しかし、行230の数字0が欲しい。
答え1
perl -lane '$. == 230 && print scalar grep /^0$/, @F'
答え2
230番目のレコードのフィールドを繰り返し、フィールドがあることを確認し0
、そうであればレコード数を数えます。
awk 'NR==230 {for(i=1; i<=NF; i++) if ($i==0) {c++}; print c; exit}' file.txt
例:2番目のレコードを確認してください。
% cat file.txt
1 2 3 5
0 0 2 3
% awk 'NR==2 {for(i=1; i<=NF; i++) if ($i==0) {c++}; print c; exit}' file.txt
2