Last active
August 29, 2015 14:11
-
-
Save mikkun/7475a38596a8d65170d5 to your computer and use it in GitHub Desktop.
「第14回東京居残りシェル芸勉強会&第32回蟹ではなくピザが出るUSP友の会定例会」解答例
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2014/12/13「第14回東京居残りシェル芸勉強会」の解答例 | |
問題URL: http://blog.ueda.asia/?p=4671 | |
Togetterまとめ: http://togetter.com/li/757291 | |
A1: | |
echo 'define f(x){if(x<=1)return(1);return(f(x-1)*x)};f(100)' | bc | |
A2: | |
seq 100 | sed '3~3c\Fizz' | sed '5~5c\Buzz' | sed '15~15c\FizzBuzz' | |
A2(別解): | |
seq 100 | sed -e '3~3s/.*/Fizz/' -e '5~5s/.*/Buzz/' -e '15~15s/.*/FizzBuzz/' | |
A3: | |
echo 0xaf 0x13 0x0d 0x24 0x58 | tr ' ' '\n' | sed 's/^0x//g' | while read n; do echo $((16#$n)); done | factor | awk 'NF==2{print $2}' | while read m; do echo "obase=16;$m" | bc | sed -e 's/\(.*\)/0x\1/g' -e's/0x\(.\)$/0x0\1/g'; done | |
A3(別解): | |
echo 0xaf 0x13 0x0d 0x24 0x58 | xargs printf '%d\n' | factor | awk 'NF==2{print $2}' | xargs printf '0x%02x\n' | |
A4: | |
echo e89fb9e3818ce9a39fe381b9e3819fe38184 | xxd -r -p | |
A5: | |
awk 'BEGIN{printf "aho\n";for(i=1;i<=1000000000-4;i++)printf "\0"}' > hoge | |
A6(予めcurlでWikipediaからYAMA.HTMLを作成): | |
cat YAMA.HTML | sed -n '/^<td>1<\/td>$/,$p' | sed '/^<\/table>$/,$d' | tr -d '\n' | sed 's/<\/tr><tr>/\n/g' | sed 's/<[^>]\+>/ /g' | sed 's/([^)]\+)//g' | sed 's/\. /./' | awk '{print $1,$2,$4}' | |
A6(別解): | |
cat YAMA.HTML | sed '/^<td>1<\/td>$/,/^<\/table>$/!d' | tr -d '\n' | sed 's/<\/tr><tr>/\n/g' | sed 's/<[^>]\+>/ /g' | sed 's/([^)]\+)//g' | sed 's/\. /./' | awk '{print $1,$2,$4}' | |
A7: | |
echo '1/4 + 2/5 + 7/16 - 5/9' | sed 's!/! / !g' | awk '{D=$3*$7*$11*$15;N=D/$3*$1+D/$7*$5+D/$11*$9-D/$15*$13;print N"\n"D}' | factor | cut -d ' ' -f 4- | tr ' ' '*' | bc | xargs | tr ' ' '/' | |
A8: | |
L='*****************************************************************'; for N in 15 1 5 3 1 10 1 5 2 1 5 1; do L=$(echo "$L" | sed '$s/^\(0*\)\(\*\{'$N'\}\)/\1\2\n\1'$(if [ $N -gt 1 ]; then printf %0$[N-1]d; fi)'/'); done; echo "$L" | tr '0' ' ' | |
A8(ランダムに「グニャグニャ芸」できるようにした別解): | |
L='*****************************************************************'; for N in $(shuf -i 1-6 -n 30 -r); do L=$(echo "$L" | sed '$s/^\(0*\)\(\*\{'$N'\}\)/\1\2\n\1'$(if [ "$N" -gt 1 ]; then printf %0$[N-1]d; fi)'/'); done; echo "$L" | sed '/^0\+$/d' | tr '0' ' ' | |
Special thanks to all the staff including @ryuichiueda and @nullpopopo! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment