• ベストアンサー

ファイルの削除について

あるフォルダ内の ファイルを削除するのに (1)unlinkを使用する (2)1つのファイルであれば unlink<abc.txt>でいい (3)テキストファイルを全部消すのであれば unlink<*.txt>でいい というところまでは わかっています ですが たとえば フォルダ内に abc1011.txt abc1012.txt abd1011.txt abd1012.txt abe1011.txt abe1012.txt abf1011.txt abf1012.txt のような ファイルがあり 1012を含むものだけ削除したい という場合はどのようにすればいいのでしょうか

  • Perl
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

unlink(<*1012.txt>); あるいは、 unlink(<*1012.*>); とか unlink(<*1012*.*>); 基本的にファイルグロブのパターンはシェルと同じなので、 シェルで(dir とかls とかで)調べてから実行してみて下さい。

mmmmmm00
質問者

お礼

ご返答ありがとうございます unlink glob( ~~ )というのを 使って うまくいきました

その他の回答 (1)

  • yukimican
  • ベストアンサー率70% (112/159)
回答No.1

ちょっと難しいかもしれませんが、 「ディレクトリ内のファイル一覧を取得し、  名前が正規表現のパターンと一致したらファイル削除」 という方法で行けます。 my $dir = "/path/to/dir"; #対象ディレクトリパス # ディレクトリを開く if(opendir(DIR, $dir)){   # 1つずつファイル名を取得   while(my $file = readdir DIR){     # current、parentは無視     next if $file =~ /^\.{1,2}$/;     # 正規表現で名前チェック     if($file =~ /.*1012[.]txt/){       unlink $file; # ファイル削除     }   }   #ディレクトリを閉じる   closedir DIR; } 正規表現については、検索するといろいろ出てきます。

mmmmmm00
質問者

お礼

ご返答ありがとうございます unlink glob( ~~ )というのを 使って うまくいきました ワイルドカードを使用しました

関連するQ&A

  • クエリについて教えてください

    ご存知の方がいたら教えてください。 今下記のようなデータがあります ABC 30 ABC 40 ABC 344 ABD 100 ABD 200 ABE 100 これを ABC 30 40 344 ABD 100 200 ABE 100 のように横展開した結果を出すにはクエリはどのように組んだらよいのでしょうか? 半日かけて悩んでますが、、結果が出ません。 童かよろしくお願いします。

  • EXCELを使ったファイル削除

    あるフォルダの中に0~1000のように名前のついたファイル(拡張子は全て同じ)があります。 そのうちEXCELファイル1シートのAの列に並んだ数値のファイルのみをフォルダから削除をしたいです。 何かソフトを使ったりして出来るでしょうか? フォルダ内 (1.txt,2.txt,3.txt・・・) EXCELファイル A B C D・・・ 1 2 2 5 3 10 4 999 上の例だとフォルダ内の2.txt,5.txt,10.txt,999.txtを削除する。

  • ファイル名変更(フォルダ名を前置きする)

    複数のフォルダにあるファイルのファイル名を、そのフォルダ名を前置きしたファイル名にリネームする方法はありませんか。 OSは7で、コマンドプロンプトからrenコマンドでできないか試したのですが思うようになりません。 行いたい作業例ですが、 ABCというフォルダ内にファイルがある場合、 1)001.txt → ABC001-00.txt 2)001-1.txt → ABC001-01.txt 3)001-11.txt → ABC001-11.txt 4)001-A.txt → ABC001-A.txt にしたいです。 1)~4)はルールことに分けて作業でもいいのですが、フォルダは複数あるため、一階層上から作業できる方がいいです。 AAAというフォルダ下に先のABCというフォルダ以外にDEFやGHIといったフォルダがあり、その下に001.txtや001-1.txtというフォルダがあるということです。 よろしくお願いします。

  • 特定のフォルダー内の全てのファイルを削除するには

    お世話になります。 Perlで特定のファイルをunlinkで削除することは、したことがあるのですが、特定のフォルダ例えばCGIプログラムのあるフォルダ配下の「./temp」フォルダー内の全てのファイルを削除するプログラムは、どのように記述すればよいのですか?よろしくお願いします。

    • ベストアンサー
    • Perl
  • unlinkで削除されないのは?

    質問させてください。 Windows2000、IIS、ActivePerl 5.6.1.638で動作させているのですが、 CGI内でunlinkを使ってファイルを削除できません。 ------------- unlink('hogehoge.txt'); ------------- みたいに書いています。 ちなみにhogehoge.txtは同CGIの中で生成しているものです。 エクスプローラーから手動で削除しようとすると共有違反になります。 World Wide Web Publishing Serviceを停止すると、手動で削除できるようになります。 どうぞご教授お願いします。

    • ベストアンサー
    • Perl
  • テキストファイルの中身をまとめて削除したい

    テキストファイルの中身をまとめて削除したいのですが 例えばa01.txtからz01.txtまである場合 fopen'w'でまとめて削除する場合、どう記述するのでしょうか? ご教示お願い致します。

    • ベストアンサー
    • PHP
  • ファイルがどうしても削除できない

    2003のファイルサーバ上に作成されているファイルで、xxxxx.txt. (末尾がピリオド)のファイルが存在し、普通には削除できません。 過去ログ等を見て、以下の方法を試してみました ・フォルダ/ファイルの所有権をadministratorに変更して削除 ・ファイル削除ツール unlockerなど ・コマンドプロンプトから、del "\\?\ドライブ\フォルダ\ファイル名" ・同じ名前のテキストファイルを上書き どうやっても、だめです。 そもそも、そのサーバのコマンドプロンプトでは、削除できないファイルが表示されません。 エクスプローラー上では、表示されますが、隠しファイルみたいにアイコンが薄くなっており、 そのアイコンはwindowsのマークです。 悪さしているわけではないのですが、無用なファイルが残っているのもいやなので、削除して上げたいのですが、方法はありませんでしょうか? よろしくお願い致します。

  • アクセス:レコード中の重複あたいを削除する方法

    100件のレコードがあります。フィールドAに4桁の一意なデータが入っています。フィールドBにはフィールドAの頭から3桁を抜き出したデータが入っています。 Aは一意でもBはそうではなくなる場合があり重複が発生します。この重複のデータのみを削除する方法を教えていただけないでしょうか。 フィールドA、 フィールドB ABC1、ABC ABC2、ABC ABD1、ABD ABD2、ABD どれぞれ二つ目のABCとABDを削除し、下記のようにしたい。 フィールドA、 フィールドB ABC1、ABC ABC2、 ABD1、ABD ABD2、

  • リストを読み込んでファイル名を書換るバッチファイル

    バッチファイル(test.bat)で、 変更前のファイル名が1行に1つずつ書かれたテキストファイル1(no1.txt)と 変更後のファイル名が1行に1つずつ書かれたテキストファイル2(no2.txt) を読み込んで、 no1.txtのn行目のファイル名のファイルを、 no2.txtのn行目のファイル名に書き換える バッチファイルを作りたいのですが、 (n=1,2,3,4…行数) どのように記述すればよいでしょうか。 具体的には、 フォルダAに 123.txt 456.txt 789.txt というファイルが入っていたとして、 no1.txtのファイルには、 123.txt 456.txt 789.txt no2.txtのファイルには、 ABC.txt DEF.txt GHI.txt が書かれていて、 test.batを実行すると、 フォルダAの中のファイル名が 123.txt => ABC.txt 456.txt => DEF.txt 789.txt => GHI.txt というようにリネームされるようにしたいです。 よろしくお願いします。(Windows10)

  • フォルダ内の全ファイル削除

    Windows Vista、office2007 を使用しています。 ABCというフォルダ内にある複数のファイルをすべて一度に削除するマクロはどうしたらよいのでしょうか?お教え下さい。よろしくお願いします。

専門家に質問してみよう