人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

linuxで、大量のファイルを一気に変換をかけるにはどうすればいいでしょう?

1.大量のファイルを一気に処理する。→ find -exec を使う。
2.変換かける。
たとえば、文字コードを変換するとして、nkfを使うとすると
nkf -e filename >filename.new; mv filename filename.bak; mv filename.new filename;

(nkfはあくまで例にすぎませんし、nkfにこだわっているわけではありません)

1, 2 を組み合わせるとかシェルスクリプトを作るとかすれば
まあなんとかなるとは思いますが、

***これ以上にスマートな方法があれば教えてください。***

そんな場面に打ってつけのコマンドが既にあって、
それを紹介してくれたら最高です。

●質問者: aukjs
●カテゴリ:コンピュータ インターネット
✍キーワード:.new Linux MV nkf コマンド
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● くまっぷす
●10ポイント

http://www.club.kyutech.ac.jp/support/manual/nkf-qkc.html

http://hp.vector.co.jp/authors/VA000501/

ちょっと外しているかもしれませんが、QKCを使うというのは?

◎質問者からの返答

あの?文字コード変換にこだわっているわけではないのです。

nkfにこだわっているわけでも、文字コード変換にこだわっているわけでも、

フィルター処理を一気に大量のファイルに適用する手段が主な質問意図です。

残念ながら、外しております。


2 ● naochin
●10ポイント

xargsコマンドを使うとうまく処理できます。

echo \<* | xargs rm

このようにすると、

rm \<*

と同様に処理できますが、ファイル数が多くてもちゃんと動作します。

左側をfindにすると、findで該当するファイルだけ指定することができます。

フィルタをうまく該当させるようにするためには、パイプのあとをシェルスクリプトにしたほうがいいかもしれません。

詳しくは、man xargsで調べてみてください。

◎質問者からの返答

nkfを例にでもして、xargsを使ってどうすれば実現できるのかを示せれば、バッチリなんですが。


3 ● znz
●100ポイント ベストアンサー

inplace(1)はどうでしょうか?

manual pageにある例では

のような使い方が出来るようです。

http://akinori.org/#inplace

http://www.google.co.jp/search?q=inplace&h=ja&ie=EUC-JP&domains=...

◎質問者からの返答

非常にいい感じです。

いるか候補です。


4 ● キチョー id:Kityo
●10ポイント

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さんを超える回答を期待しています。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ