• ベストアンサー

文字コード変換、改行コード変換をn件ずつ実効

UNIX初心者です。 指定ファルダにあるファイルについて 文字コード変換、改行コード変換を一括で行ないたいです。 しかし、以下のコマンドではファイル数が多すぎて、一括変換が出来ません。 find . -type f -print0 | xargs -0 nkf --overwrite -s --windows いい方法ありましたら、ご教示いただきたいです。 よろしく御願いします。 (具体例をだしていただけると助かります)

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

xargsはコマンドラインを適当に分割してくれるので「ファイル数が多すぎて、一括変換が出来ません」ということは無いはずなんですが。 「一括変換が出来ません」の内容を、もっと具体的に書いてもらえませんか? 本当にファイル数が多すぎてxargsで不具合が起っているなら find . -type f -exec nkf --overwrite -s --windows \{\} \; でいいはずです。1ファイルずつnkfを実行するので、速度は落ちますが

manaaaa1013
質問者

お礼

ご教授頂いた方法で実効できました。 ありがとうございました。 ※私の方法だと、Too many open filesというエラーになっていました。

その他の回答 (1)

回答No.2

#1 さんの解答の最後の \; を \+ に変えると、 ARGMAX ずつ処理してくれると思います。 find . -type f -exec nkf --overwrite --windows '{}' '+' あるいは zsh を使っているなら、 autoload -Uz zargs zargs ./**/*(.) -- nkf --overwrite --windows とか。

manaaaa1013
質問者

お礼

変わらず、Too many open filesというエラーになってしまいました。。

関連するQ&A

専門家に質問してみよう