シェル芸160本ノック解答例 その8
技術評論社から出版された『1日1問、半年以内に習得 シェル・ワンライナー160本ノック』の解答例です。
- 解答例の範囲: 問題71〜問題80
- 前回の解答例: シェル芸160本ノック解答例 その7
問題71
$ grep -o . uni.txt | LANG=C awk '{print $0,length}'
a 1
± 2
運 3
🎂 4
問題72
$ echo -e "\U1F363\U1F37A"
🍣🍺
# `raku`(旧称`perl6`)を使った別解
$ raku -e 'say "\c[SUSHI,BEER MUG]"'
🍣🍺
問題73
# ワンライナー実行前:
$ ls -1
''$'\202''ҁ['$'\202''Ł['$'\202\246\202\323''.pdf'
''$'\223''|'$'\227\247\225''ϑԐa'$'\216''m'$'\202''̔閧.txt'
秘密の圧縮ファイル.zip
# 解答例のワンライナーを実行:
$ ls | grep -av '\.zip$' | while read f; do printf "mv '%s' '%s'\n" "$f" "$(nkf -wxLu <<<"$f")"; done | sh
# ワンライナー実行後:
$ ls -1
ぴーでーえふ.pdf
倒立変態紳士の秘密.txt
秘密の圧縮ファイル.zip
問題74
$ date -f <(sed 's/[年月]/-/g;s/日//' days.txt) +%Ex | sed 's/0\(.\)/\1/g'
平成31年3月3日
令和元年1月1日
令和2年8月1日
問題75
$ perl -C -lnE 's/[\p{ExtPict}\p{Join_C}\p{VS}]//g;say' minutes.txt
# 本日のミーティングの議題
* 今月の売り上げ
* 新商品の報告(山田さん)
* 研究開発の進捗
...
問題76
$ diff <(nkf --ic=UTF8-MAC mac_ls_old.txt) mac_ls_new.txt
2d1
< バナザード.txt
問題77
$ for f in meme_*; do grep -aH . $f | nkf; done | grep 山田 | sed 's/:.*//'
meme_euc
meme_utf8
問題78
$ grep -Po '\p{Han}' sample_novel.txt | grep -vf jouyou_kanji.txt
智
皰
噛
云
鴎
問題79
$ f=message.txt; iconv -l | while read c; do iconv -f $c $f &>/dev/null && { echo "始$c"; iconv -f $c $f; echo "終$c"; } done | perl -C -Mutf8 -0777 -nE '@m=(/(始(.+?)\n[\p{Han}\p{Hiragana}\p{Katakana}\p{P}\n]+\n終\2)/gs);say $m[0]' | sed '1d;$d'
イカれたメンバーを紹介するぜ!
真イカのパプリカソースの修平
以上だ!
ちなみに、message.txt
の文字コードはCP930(メインフレームなどで使われるEBCDICベースのIBM漢字コード)のようです。
問題80
$ ruby -lne 'puts [$_.to_i(2).to_s(16)].pack("H*")' zeroone
不労所得
Written on November 5, 2022