シェルワンライナー160本ノック問題94
問題94 ラグランジュの四平方定理の部分的な検証
ラグランジュの四平方定理を実際に具体的な数で確かめる問題だった。
解答例は
seq -w 0 9999 | awk -F "" '{print $0,$1*$1+$2*$2+$3*$3+$4*$4}' | sort -k2,2n | uniq -f 1 | head -n 101
となる。seq -w で0埋めをしている。awkで区切り文字を空文字にして計算を行っている。sortは
-k, --key=KEYDEF
指定されたキーでソートする。KEYDEF では場所と並び替え種別を指定するKEYDEF は F[.C][OPTS][,F[.C][OPTS]] の書式で、開始位置と停止位置を指定します。 F はフィールド番号で、 C は
フィールド内の文字位置です。両方とも開始番号は 1 です。
とあるように2列目から2列目を基準にソートするという意味になる。number,number の範囲にnを適用する仕様になっている。uniq -f は最初のnこのフィールドを無視するオプションである。