• ベストアンサー

リストされた複数のファイルを削除する方法?

テキストファイルにリストされたファイルを一括して削除したいのですが、 rm < file.list としても受け付けてくれません。 cat file.list | rm もダメでした。 リストされたファイルを削除する方法をご教示頂けますでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

file.lst の中身によるけど ・空白文字 (改行を含む) でファイル名が区切られているなら xargs rm < file.lst sed -e 's/^/rm /' | sh while read file; do rm "$file"; done < file.lst ・各行にファイル名が 1つずつあるなら sed -e 's/^/rm "/; s/$/"/' file.lst | sh perl -ne 'chomp; unlink;' file.lst くらいは思いつくかな.

yyamada10
質問者

お礼

遅くなって大変申し訳ありません。 非常に良く分かりました。 ご教示大変ありがとうございました。

その他の回答 (2)

回答No.2

pythonを覚えるとファイル処理が便利なのでよく多用します。 普通にbashとawkやsedなどを組み合わせて頑張ったりしても良いし、 perlなどで処理してしまうことも出来ます。 ここでは、python、他にエディタを用いたファイル整形で出きること、shだけで出来る事に関して言及します。 たぶん、大抵のlinuxにはpythonが入っているとおもうので、以下のファイルを作って実行すれば良いです。一応どんな形式でも空白で区切られて入れば対応出来るスクリプトのはず。 rmlist.pyをエディタで作る。 ---rmlist.py---の中身---- import sys import os filepoint=sys.stdin filecont=filepoint.read() filenames=filecont.split() for filename in finenames: ___os.remove(filename) ------------------------- 作ったあとに、(___は空白三文字に置き換えてください。このサイトの使用で空白が無視される) python ./rmlist.py < ./file.list とコマンドラインで実行してやれば良いです。 エディタでできること file.list内に改行を含む場合は、file.listをエディタで開いて、 すべての行の先頭に「rm 」という文字(三文字)を 挿入して、file.shのような名前で保存し、 sh file.sh というコマンドを実行すればファイルは消えますね。 file.list内で改行等がなく、ただ単にfileがスペースをはさんで並んでいる場合は、file.list内の先頭に「rm 」という文字(三文字)を 挿入して、file.shのような名前で保存し、 sh file.sh というコマンドを実行すればファイルは消えますね。 完全にシェルのなかだけで簡潔したいばあいは http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231099/ にあるのを参考にして、 ---------tmp.sh--------- #!/bin/sh BUFIFS=$IFS IFS= exec 3< $1 while read FL 0<&3 do echo "$FL" rm $FL done exec 3<&- IFS=$BUFIFS ----------- をつくって、 ./tmp.sh file.list でも消えます。この方法はfile.listの中身が、ファイル名と空白だけで出来て入ればどの形式でも問題ありません。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

リストの形式がわからないので微妙ですが rm `cat file.lst`

関連するQ&A

  • テキストファイルの空白を削除する方法

    テキストファイルに空白がある場合、一括して削除する方法はありませんか。

  • ファイルの自動削除方法について

    WindowsNTを使用しています。 フォルダ中のファイルで、更新日<処理日-12ヶ月のものを抽出し、削除候補リスト・テキストデータ(フォルダ名・ファイル名等)を出力します。 その削除候補リストを確認後、削除候補ファイルをバックアップし、自動削除を行います。 このような処理について、何か良い方法がありましたら教えて下さい。 以上、宜しくお願い致します。

  • 複数のテキストファイル内の複数行を一括して削除

    同一のフォルダにある複数のテキストファイルに対して ************ と ************ で囲まれた部分(複数行)を一括して削除できる方法はありますでしょうか。 ************ と ************ で囲まれた部分は、行数も内容も同じではありません。 例1: ************ 123 abc ************ 例2: ************ あいうえ かきくけ 123 abc ************

  • WMPのプレイリスト削除

    WMPのプレイリストを削除したいのです。 普通に一括にして削除するのならWMP上でできるので質問はしませんが、 この作業が結構思いのでプレイリストをファイルごと消したいのです。 そういったことは可能でしょうか? また、可能ならプレイリストの格納されているディレクトリを教えてください。

  • エクセル ユーザー設定リストを削除する方法

    エクセルのオプションの「ユーザー設定リスト」に大量のリストを間違ってインポートしてしまいました。(3000個) これらを一括して削除する方法はありませんか? 一個一個削除していたのでは、とても時間が掛かってしまいます。 よろしくお願いします。

  • MySQLのストアドでファイルを削除

    MySQLのストアド(プロシージャ/ファンクション)でテキストファイルを削除する方法を探しています。 テキストファイルは、他のファイルでも構いません。 テーブルにデータがINSERTされた時に実行されるストアドです。 system rm -f 'ファイル名'; によるファイルの削除を試みましたが、エラーが発生します。 可能であればストアドからファイルを削除したいですが、難しいようでしたら上記の条件を満たす限り、どのような方法でも構いませんので、教えて欲しいです。 各バージョンは最新バージョンとします。 大変困っていますので、どうかご協力を、宜しくお願い致します。

  • リストボックスに関連してファイルの行削除

    VisualC++ 6.0でMFCを利用しています. あるテキストファイルの中身が表示されているリストボックスがあります. そのリストボックスのある行をダブルクリックすると, 対応した行のテキストファイル,リストボックス両方の行が削除されるプログラムを組んでいます. リストボックスの行は削除できるのですが,テキストファイルのほうは削除する手段がわかりません. void CModel03Dlg::OnDblclkMyList02() { // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください CModel03Dlg::List_Selected(fp); int label_number; label_number = m_sList02.GetCurSel(); char input[256], string[256]; m_sList02.GetText(label_number, input); while(fgets(string, 256, fp) != NULL){ if(input==string){ //string = "\0"; //この辺りがわからない MessageBox(input); // Boxが表示されないのでif文の評価がfalseだと } } m_sList02.DeleteString(label_number); } どうすればテキストファイルの内容を削除できるのでしょうか?教えてください.

  • 特殊なファイル名のファイルの削除方法

    間違えて "---------------------" という名前のファイルが作成されてしましました。これを削除するにはどうしたらよいのでしょうか? 以下のよう"---"がにオプションと解釈されてしまい、ファイル名として認識されなく困っています。 % >rm ------------------ rm: unrecognized option `---------------------' Try `rm --help' for more information. 宜しくお願い致します。

  • iTunes10 で動画ファイルの削除方法は?

    iTunes10 で動画ファイルの削除方法は? iTunes10を使用しています。 音楽ファイルはiTunesのライブラリーリストから削除するときに「ゴミ箱へ・・・」という ダイアログが表示されて削除できます。 動画ファイルの方はこのダイアログが出ません。 ライブラリーリストからは削除できますが、ファイルは残ったままになっています。 ライブラリーリストから削除する時に動画ファイルも同時に削除する方法はないでしょうか? また、今までにライブラリーリストから削除した動画リストのファイルをまとめて削除する方法は無いでしょうか? よろしくお願いします。

  • ゴミ箱から削除してしまったファイルのリスト

    Shift+DELで削除するのが癖になってしまっていて、つい先程もデスクトップにあったフォルダをまるごと消去してしまいました。 フリーソフトを使って復元を試みましたが、やはりいくつかファイルが足りていないようでした。 元に戻らなければ諦めるより他にどうしようもないのですがせめて、何が足りていないのかが分かれば、と思います。 ここ最近ゴミ箱から削除してしまったファイルのリストを参照する方法などありませんでしょうか? 復元はされなくてもかまいませんが、知らずのうちに削除してしまったものがあると思うと心配です。 どなたか分かる方がいましたらよろしくお願いします