第61回 シェル芸勉強会振り返り
まえがき
「jus共催 第61回しれっと奇数月に移行しつつあるシェル芸勉強会」に参加してきたのでその振り返り
問題と回答
n/m
Q1 /icons/pass.icon
問題
TODO
僕の答え
code:sh
a(){ A=$@; echo $A; }; a {a,b,c,d}{1,2,3,4} #シェル芸 LANG=C ls {a,b,c,d}{1,2,3,4} 2>&1 | awk '{print $4}' | tr -d "':" | xargs #シェル芸 Q2 /icons/pass.icon
code:sh
aho(){ n=$(date +%S | sed -E 's/^0//'); ((n % 3 == 0)) && echo アホ$n; sleep 1; aho; }; aho #シェル芸 Q3 /icons/pass.icon
code:sh
cd /; n(){ echo *; }; n;n;n;n;n;n;n;n;n;n #シェル芸 ls $(python3 -c 'import unicodedata; print(unicodedata.normalize("NFKD", "/"))'){,,,,,,,,,} #シェル芸 n=$(pwd); ls ${n::1}{,,,,,,,,,,,,,} #シェル芸 ls ${PWD::1}{,,,,,,,,,,,,,} #シェル芸 Q4 /icons/fail.icon
code:sh
ruby -lane 's="%s"; s+="\n" if $.!=3; printf(s,$F0)' < Sh*/v*61/file1 Q5 /icons/pass.icon
素直な回答
code:sh
cat Sh*/v*61/nums2 | sed p | sed '1s/24680/ /g;2s/13579/ /g' 数字の1と2しか使わない回答
code:sh
数字を全く使わない回答
code:sh
a=$(($$/$$))
b=$(($$/$$+$$/$$))
Q6 /icons/pass.icon
code:sh
cat Sh*/v*61/nums3 | awk '{for(i=1;i<=NF;i++){ print $i, $(i+1), $(i+2), $(i+3) }}' | awk 'NF==4{ print $0, $4==$1*3}' | awk '$5==1{print $1}' | tr '\n' ' '
awk使わない版
code:sh
cat */*61/nums3 | fmt -1 | sed '1i \\n\n' | paste -d ' ' - <(fmt -1 */*61/nums3) | grep -E '^0-9' | sed -E 's/(.+) (.+)/echo \1 $((\2 == \1 * 3))/g' | bash | grep -E ' 1$' | grep -Eo '^0-9+' Q7 /icons/pass.icon
code:sh
seq 0 100 | awk '{print $1/100, 1/101}' > prior
echo 表 | while read c; do
awk '{print $0, $1, $1*$2*2}' prior
else
awk '{print $0, $1, (1-$1)*$2*2}' prior
fi
done
感想
シェル芸呪符
gori.sh
来年の自分を信じるな
コメントは大事
シェルの引数の実装は辛い