以下のように、ファイルがあって、全部SJISのファイルだったとする。
SJISのファイルをUTF-8に変換して、それぞれファイル別にremakeディレクトリに保存したい、
ちなみに以下でも同様に失敗する。
シェルを作ってもいいんですが、
ワンラインでやりたいなぁと思ったら以下のページが参考になりました。
-exec の中で sh -c '~ > remake/{}'ってシェルを実行してやればいいんですね。
以下でもOK
$ find . -maxdepth 1 -type f -print | xargs -i sh -c "iconv -f SHIFT-JIS -t UTF-8 {} > remake/{}"
$ ls -F
out_file.bat remake/ sql.txt t.csv tb1_make.txt
$
SJISのファイルをUTF-8に変換して、それぞれファイル別にremakeディレクトリに保存したい、
ってときに、なんとなーく以下のように書いたら、「remake/{}」ってファイルに
全部のファイルの内容がリダイレクトされて失敗。
$ find . -maxdepth 1 -type f -exec iconv -f SHIFT-JIS -t UTF-8 {} > remake/{} \;
全部のファイルの内容がリダイレクトされて失敗。
$ find . -maxdepth 1 -type f -exec iconv -f SHIFT-JIS -t UTF-8 {} > remake/{} \;
ちなみに以下でも同様に失敗する。
$ find . -maxdepth 1 -type f -print | xargs -i iconv -f SHIFT-JIS -t UTF-8 {} > remake/{}
シェルを作ってもいいんですが、
ワンラインでやりたいなぁと思ったら以下のページが参考になりました。
[参考URL]
-exec の中で sh -c '~ > remake/{}'ってシェルを実行してやればいいんですね。
$ find . -maxdepth 1 -type f -print -exec sh -c 'iconv -f SHIFT-JIS -t UTF-8 {} > remake/{}' \;
以下でもOK
$ find . -maxdepth 1 -type f -print | xargs -i sh -c "iconv -f SHIFT-JIS -t UTF-8 {} > remake/{}"
コメント