Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック第3章2節練習問題その2

練習3.2.c 漢字と読みの変換と日本語と英語の翻訳

mecab, kkc, trans などのコマンドを使っていろいろな変換をやっていく問題だった。

echo 我々はシェル芸人だ。 | mecab | awk '{gsub(/\*/,$1);print}' | awk -F, '{print $(NF-1)}' | tr -d \\n | sed 's/...$/\n/' | nkf --hiragana

というのが小問1の解答だった。gsub で変換しているのはそうしないと列指定でうまく文字を抜き出せないからである。sed で EOS を除去して改行し、ひらがなにしている。

 

小問2の解答は

echo おまえもしぇるげいにんにしてやろうか。 | kkc | grep -oP '(?<=<)[^<]*(?=/)' | paste - -sd ''

である。直前の文字を参照する場合は?<=... とする必要がある。

 

小問3は簡潔で

echo 我々はシェル芸人だ。 | trans ja:en | sed -n 4p

となる。

 

練習3.2.d フォーマットの変換

echo -e '# 見出し\n\n本文です。 \n\n* 箇条書きです。\n* これも
箇条書き。' | pandoc

を実行するだけだった。