1.大量のファイルを一気に処理する。→ find -exec を使う。
2.変換かける。
たとえば、文字コードを変換するとして、nkfを使うとすると
nkf -e filename >filename.new; mv filename filename.bak; mv filename.new filename;
(nkfはあくまで例にすぎませんし、nkfにこだわっているわけではありません)
1, 2 を組み合わせるとかシェルスクリプトを作るとかすれば
まあなんとかなるとは思いますが、
***これ以上にスマートな方法があれば教えてください。***
そんな場面に打ってつけのコマンドが既にあって、
それを紹介してくれたら最高です。
inplace(1)はどうでしょうか?
manual pageにある例では
のような使い方が出来るようです。
http://www.google.co.jp/search?q=inplace&h=ja&ie=EUC-JP&domains=...
http://www.club.kyutech.ac.jp/support/manual/nkf-qkc.html
http://hp.vector.co.jp/authors/VA000501/
ちょっと外しているかもしれませんが、QKCを使うというのは?
あの~文字コード変換にこだわっているわけではないのです。
nkfにこだわっているわけでも、文字コード変換にこだわっているわけでも、
フィルター処理を一気に大量のファイルに適用する手段が主な質問意図です。
残念ながら、外しております。
xargsコマンドを使うとうまく処理できます。
echo \<* | xargs rm
このようにすると、
rm \<*
と同様に処理できますが、ファイル数が多くてもちゃんと動作します。
左側をfindにすると、findで該当するファイルだけ指定することができます。
フィルタをうまく該当させるようにするためには、パイプのあとをシェルスクリプトにしたほうがいいかもしれません。
詳しくは、man xargsで調べてみてください。
nkfを例にでもして、xargsを使ってどうすれば実現できるのかを示せれば、バッチリなんですが。
inplace(1)はどうでしょうか?
manual pageにある例では
のような使い方が出来るようです。
http://www.google.co.jp/search?q=inplace&h=ja&ie=EUC-JP&domains=...
非常にいい感じです。
いるか候補です。
http://furyo.on-air.ne.jp/linux/bash.html
URLは少し適当です。
forなりforeachなりを使えば良いのでは?と思います。
普段はDOSシェル(CMD.exe)を使っているので、UNIX系のシェルは基本的にはマニュアルや安直本を見ながらですので、少々不正確かもしれませんが、bashをお使いであれば
for FileName in `ls a*`;do
nkf -e ${FileName} >${FileName}.new; mv ${FileName} ${FileName}.bak; mv ${FileName}.new ${FileName}
done
で、a*にマッチするファイルを変換すると思います。(lsのデフォルトの挙動が、余計な出力をしない設定の場合)
お使いのシェルが何であれ、この種の繰り返し文は「for」か「foreach」あたりの名前でサポートされていると思いますので、manか何かでお調べ下さい。
余談ですがfind -execはファイルを探す条件を指定するのであって、一括処理に使うのはどうかと思います。
>forなりforeachなりを使えば良いのでは?と思います。
質問で示したのとあまり代わり映えしないような...
>お使いのシェルが何であれ、この種の繰り返し文は「for」か「foreach」あたりの名前でサポートされていると思いますので、manか何かでお調べ下さい。
人力検索を否定しているような...
>余談ですがfind -execはファイルを探す条件を指定するのであって、一括処理に使うのはどうかと思います。
覚えておきます。
以降は、znzさんを超える回答を期待しています。
非常にいい感じです。
いるか候補です。