残念ながら、現実はこうなってる。
$ tree
.
├── dir1
│ ├── sjis.txt
│ └── utf8.txt
└── dir2
├── dir3
│ └── sjis.txt
└── euc.txt
このディレクトリからsjisで書かれたファイルだけ抽出したい。 nkf
の --guess
オプションを使えばできるとは思ってたけど、意外と面倒だった。なんかもっといい方法ある気もする。
$ IFS=$'\n'; for file in `find . -type f`; do nkf --guess "$file" | grep Shift_JIS >/dev/null 2>&1 && echo "$file"; done;
./dir2/dir3/sjis.txt
./dir1/sjis.txt
nkf
はコマンドの中でも好きな方。echo
のところ例えば nkf -w --overwrite
にすれば、SJISをUTF-8にしちゃえる。