- ベストアンサー
文字コード変換、改行コード変換をn件ずつ実効
UNIX初心者です。 指定ファルダにあるファイルについて 文字コード変換、改行コード変換を一括で行ないたいです。 しかし、以下のコマンドではファイル数が多すぎて、一括変換が出来ません。 find . -type f -print0 | xargs -0 nkf --overwrite -s --windows いい方法ありましたら、ご教示いただきたいです。 よろしく御願いします。 (具体例をだしていただけると助かります)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
xargsはコマンドラインを適当に分割してくれるので「ファイル数が多すぎて、一括変換が出来ません」ということは無いはずなんですが。 「一括変換が出来ません」の内容を、もっと具体的に書いてもらえませんか? 本当にファイル数が多すぎてxargsで不具合が起っているなら find . -type f -exec nkf --overwrite -s --windows \{\} \; でいいはずです。1ファイルずつnkfを実行するので、速度は落ちますが
その他の回答 (1)
- MillenniuM
- ベストアンサー率58% (42/72)
回答No.2
#1 さんの解答の最後の \; を \+ に変えると、 ARGMAX ずつ処理してくれると思います。 find . -type f -exec nkf --overwrite --windows '{}' '+' あるいは zsh を使っているなら、 autoload -Uz zargs zargs ./**/*(.) -- nkf --overwrite --windows とか。
質問者
お礼
変わらず、Too many open filesというエラーになってしまいました。。
お礼
ご教授頂いた方法で実効できました。 ありがとうございました。 ※私の方法だと、Too many open filesというエラーになっていました。