シェルワンライナー160本ノック問題51
問題51 テストの得点一覧の出力
問題のファイルは
https://github.com/shellgei/shellgei160
からダウンロードできる。
出席してない人を0点にするという条件の下で成績と名簿を結合する問題だった。今回はできた。
自分の解答例は
sed -E 's/0*([0-9])/\1/;s/([0-9])/00\1/' scores.txt | sort -k1,1n | join -a 1 students.txt - | awk '{a[$2]=$3}a[$2]==""{print $1,$2,0}a[$2]!=""{print $0}'
である。本の解答例を見て、最後の awk は NF の変数を用いたほうが簡潔に書けるということに気が付いた。