本文 |
convmvを使えない場合の変換方法。 xargsを使うとsjisは文字化けしてしまうのでsedで実行コマンドを作成する。
# utf-8 → shift_jis変換 find . | \ awk '/^.\// { c = split($0, a, "/"); print c "\t" $0 }' | \ sort -nr -k1 | \ awk '{print $2}' | \ sed 's|\(.*\)|echo \1"\t"`dirname \1`"/"`basename \1 \| iconv -f utf8 -t sjis -c `|' | \ sh - | \ awk '$1 != $2 { print "mv -n " "\"" $1 "\"", "\"" $2 "\"" }' | \ sh -
# shift_jis → utf-8変換 # shift_jisロケールで実行 # バックスラッシュと円マークの違いに注意 find . | ¥ awk '/^.¥// { c = split($0, a, "/"); print c "¥t" $0}' | ¥ sort -nr -k1 | ¥ awk '{print $2}' | ¥ sed 's|¥(.*¥)|echo ¥1"¥t"`dirname ¥1`"/"`basename ¥1 ¥| iconv -f sjis -t utf-8 -c `|' | ¥ sh - | ¥ awk '$1 != $2 { print "mv -n " "¥"" $1 "¥"", " " "¥"" $2 "¥"" }' | ¥ sh -
# # sjisロケールが設定されていない場合 # # RedHat EL 8の場合、glibc-locale-sourceが必要(なければ以下でインストール) yum install glibc-locale-source
# sjis文字マップ作成(エラーが出るが一旦無視) localedef -f SHIFT_JIS -i ja_JP /usr/lib/locale/ja_JP.sjis
# テスト export LC_ALL=ja_JP.sjis
|