読者です 読者をやめる 読者になる 読者になる

超言理論

特に益もない日記である

Shellでsedしようと思ったらハマった

凡ミスなんだけど。

適当に文章を整形する(URLの削除とか)スクリプトを書いていて、その一環で「あ、これ句点で一文切ったらいいかも」と思い、以下のような命令を含むコードを書く。
(この命令単体では普通に動いた)

sed -e "s/。/。\n/g" 

で、動かない。

色々参考にして改行コードを変えてみたりしたけど動かず。
マルチバイト文字がダメなのかと思って調べるも、GNU sedはマルチバイト文字に対応可能。

で、原因だけど、shellの文字コードとテキストの文字コードが違ったのが問題だった。

cat test.sh

nkf -g test.sh

shell書いたときの文字コードが実行するときの文字コードとずれてりゃそりゃ文字化けするし、マッチングも失敗するよね。
お疲れ様でした。


Copyright © 2012-2016 Masahiro MIZUKAMI All Rights Reserved.