問い
文字レベルseq2seqなど、文字列を文字単位で空白区切りにしたいことがある。
いちいちスクリプトを書くのは面倒なので、これをlinuxコマンドでやりたい。
※ pythonでは' '.join(list(string))
でできる。
input.txt
アンパンマングミRTA (^^)
パッケージ開封から全てのグミを取り出すまでのタイムを計測
オブラート及びグミに傷を付けてはならない
stdout
ア ン パ ン マ ン グ ミ R T A _ ( ^ ^ )
パ ッ ケ ー ジ 開 封 か ら 全 て の グ ミ を 取 り 出 す ま で の タ イ ム を 計 測
オ ブ ラ ー ト 及 び グ ミ に 傷 を 付 け て は な ら な い
答え
sed
で頑張る。もとからある半角スペースは_
でエスケープ。
cat input.txt | sed -e 's/ /_/g' | sed -E 's/(.)/ \1/g' | sed -e 's/^ //g'
もうすこし賢い方法がありそう。