07/09/17 21:22:34 rlyHM/pf
>>179
ああ、そういや ASCII を忘れてた。w
解説は >>180 を見てもらうとして、
それを踏まえて >>174 を改良すると、こんな感じかな。
後は自分で調べてみな。
find /data | while read TARG ; do
File=$( nkf -g <<< "$TARG" )
case "$File" in
Shift_JIS*) Code='sjis' ;;
EUC-JP*) Code='euc-jp' ;;
ISO-2022-JP*) Code='iso-2022-jp' ;;
ASCII*|UTF-8*) echo "$TARG: $File"; continue ;;
*) echo "$TARG: $File: Not supported format."; continue ;;
esac
echo "$File: Convert from $Code to UTF-8." ## お好みで
convmv -f "$Code" -t utf-8 "$TARG" --notest
done
>>180
> 「a.txt」と「(UTF-8な)あ.txt」と「(EUC-JPな)い.txt」が混在してると
判定はファイルごとに行うからこれで「BINARY」にはならないはず。
「(UTF-8)あ(EUC-JP)い.txt」とか、複数の文字コードで構成された
ファイル名だと誤判定と言うか、期待通りにはならないと思う。
こういうのもきちんと判定したいのなら ack がお勧め。
こんなファイル名に出くわす事はまずないだろうけどな。w