• ベストアンサー

秀丸 正規表現 \z

あるフォルダに空のファイルがいくつかあって、それをgrepを使ってファイルの一覧を取得したいのです。 空のファイルは、[EOF]とだけ入っている状態なので、 正規表現の「\z」で抽出出来そうな感じですけど、駄目でした。 マクロを使わないで、正規表現だけで、ファイルの一覧を取得出来るのでしょうか? 秀丸初心者ですが、宜しくお願いします。

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

  • ベストアンサー
noname#194317
noname#194317
回答No.2

正規表現だと厳しいんじゃないですかね? 空行 ^$ でやれないかとも一瞬思いましたが、中身があるファイルの中に空行があった場合も反応しちゃいますので、だめそうです。文頭と文末を表すエスケープシーケンスあるいは、何もないと言うことを表すエスケープシーケンスがない限りは無理なんじゃないですか? (ちなみに、どちらもありません) EOFと表示されていると言うことですが、それって単にファイルの終端ですよという表示に過ぎない可能性があります。実際そこにEOFコード(No1の回答者さんが示してくれた、0x1a)が存在しているとは限りません。少なくともサイズがゼロのファイルだったら、そこには何もないはずです。また、NOTEPAD.EXE(要はメモ帳)で作成したテキストには、EOFコードが入らないはずです。 よってここは素直に、マクロで対象フォルダのファイル一覧を取ってきて、その結果(の、ファイルサイズ)に対してgrepをかけるのが一番だと思います。

tereyasan
質問者

お礼

回答有難うございました。 マクロですね、勉強してみます (^^; 『秀丸エディタ ハンドブック』に エスケープシーケンス ¥z  EOF (End Of File) (文字コード 0x1A) と書いてあったので、試してみたかったのです (^^; 『EOF』はどんなファイルにも入るのだと、勘違いしてました (^^;

その他の回答 (1)

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

バイナリが反応するか判らないけど 行頭-EOF-行末 という正規表現で引っかからないかな eofは0x1aらしい。 秀丸無いから確認できないけど。

tereyasan
質問者

お礼

回答有難うございました。 秀丸では、 行頭‥^ 行末‥$ です。 やってみましたが、駄目みたいです。(^^;

関連するQ&A

  • 秀丸の正規表現

    秀丸の正規表現 http://pc.dearie.jp/hidemaru/replace/14.html 上記URLでメールの正規表現について解説があります。 [A-Za-z0-9\-\.\_]+@[A-Za-z0-9\-\_]+\.[A-Za-z0-9\-\.\_]+ この正規表現でメールの検索をおこなっています。この正規表現は理解出来ます。 .*([a-z0-9\-\.\_]+@[a-z0-9\-\_]+\.[a-z0-9\-\.\_]+)([^a-z0-9@\.\-\_]+).* キャプチャを使って正規表現でメールアドレスをマッチしているのは理解できます。 なぜ置換で、「\1,」とやっても、メールアドレスのみを取得できないのでしょうか? 実際に秀丸エディタを使ってやってみましたが、メールアドレスのみ取得することができませんでした。 検索ではメールアドレスにマッチするのに、なんでキャプチャが正しく動かないのかがわかりません・・・

  • 正規表現でファイルの末尾の特定の文字以外を探し出す。

    Devasというフォルダ内の複数のファイルを正規表現の置き換えができるソフトを使って、フォルダ内の複数のファイルの末尾の行の初めの文字が特定の文字(この場合は<)以外のファイルを探しだしたいのですが、 正規表現で\z^[^<]としても出てきません。 秀丸などでファイルを見ると、ファイルの末尾が ----------------------- <br> [EOF] ----------------------- となっているファイルは無視し、<以外の文字のファイル、例えば、 ----------------------- (あいうえお) [EOF] ----------------------- などとなっているファイルを探し出したいのです、 [EOF]の部分がファイルの末尾になるから上の正規表現では出来ないのでしょうか?だとすればどのようにすればよいのでしょうか?

  • 秀丸の正規表現(HMJRE.DLL V1.92)で、

    秀丸の正規表現(HMJRE.DLL V1.92)で、 以下のことが可能かどうか教えてください。 ある2つの文字列のいずれも含まない行を 正規表現とGREPで抽出したいのです。 (ほかの手段でもかまいません) たとえば AAAA ABCDEF BCDEFG EFGHI といったテキストデータがあった場合 "ABC"と"DEF"のいずれも含まない行であれば AAAA EFGHI を抽出したいのです。 以上、よろしくお願いします。

  • 正規表現について

    Perlの初心者です。 正規表現の指定方法がよくわかりません。 ディレクトリー内の該当するCSVファイルの抽出をしたいのですが、 "xyz20050105*.csv"に該当するデータすべてを抽出したい。 下記のように、詳細に指定して該当するCSVのファイル名を取得したいのですが、これだとディレクトリー内がすべて表示されてしまいます。 @FTPlist = grep ("$head$year$mon$mday*.csv", readdir(DIR)); どのように指定すればよいのでしょうか?

    • ベストアンサー
    • Perl
  • 秀丸での正規表現マクロについて

    abc<a href="*******">abc</a> cdf<a href="++++++++">cdf</a> というリストがあります。 ここで秀丸マクロで replaceallfastをしたいと思っています。 ほしい結果は abc cdf のみです。 replaceallfast "<a href=.*</a>","" など色々やってみましたがだめでした。 正規表現マクロの文法をどうしたらよいか教えてください。 よろしくお願いします。

  • 秀丸での正規表現

     秀丸エディタVersion 7.11、HMJRE.DLL V1.92 を使用しています。  下記上のような4行のテキストファイルから、数字以外で始まる行を空行に置換しようと思い、検索文字列を「^[^0-9].*」、置換文字列を「」(なし)に設定したのですが、3行目のx だけからなる行は削除されませんでした(下記下のようになりました。このとき、カーソルは変換後の2行目の一番左のx の右側にあります)。 置換前 >11111 > >xxxxx >[EOF] 置換後 >11111 >xxxxx カーソルは左端のx の右側 >[EOF]  11111 とxxxxx の間にもう1行空行を入れると、所望の動作となります。  正規表現の指定が間違っているのでしょうか。

  • 秀丸エディタで正規表現とマクロを詳しく知りたい

    秀丸エディタをインストールして使い始めたのですが正規表現とマクロを詳しく知りたいのですが解説しているサイトをご存知でしたら教えてください。秀丸エディタに付属のヘルプは一通り目を通しましたが正規表現とマクロがどこに書いているのが分りませんでした。もう一度ヘルプをじっくり見るつもりです。amazonに秀丸エディタの市販の解説本は色々あったのですが どれを買ったらいいか決められませんでした。秀まるおサイト販売の白黒の公式マニュアルはどうでしょうか? また、まだ送金はしていないのですが使用制限・試用期間があるのでしょうか?しばらくすると送金してください等のポップアップが出るのでしょうか?もちろんこのソフトの凄さは分かっているのでちゃんと作者に送金して使うつもりです。

  • 正規表現について教えてください

    これから正規表現を勉強しようとする者です。 次の2点について教えて頂きたいのですが、よろしくお願いします。 1.次のような置換をする正規表現は? 例えば、 ■■■ あいうえお かきくけこ ■■↓ ○○○ あいうえお かきくけこ ○○○ というテキストがある場合、○○○~○○○までの「あいうえお」 のみを「アイウエオ」に置換するには、どのような正規表現にすれば 良いのでしょうか? 2.秀丸エディタでは、フォルダ内の全ファイルを一括で置換する 事はできるのでしょうか? 以上2点です。 よろしくお願いします。

  • (秀丸)正規表現で、変数¥1内より、""のみ削除

    お世話になります。 秀丸エディタの正規表現で、 変数¥1内に、取得した文字列値が、 "1,234" だった場合、 その変数値より、""(ダブルコーティション)のみを削除して、 変数¥1内に、 1,234 として、セットし直したいです。 そこでご質問させていただきますが、 既存の変数¥1内に取得する為の正規表現のところに対して、 さらに、 どのように正規表現を追記すれば、 上記しましたように、 変数¥1内に、 1,234 として、セットし直すことが出来ますでしょうか? 以上になります。 宜しくお願いいたします。

  • grepにマッチした正規表現の文字列を取得したい

    grepにマッチした正規表現の文字列を取得し、マッチした文字列を 一覧で取得したいのですが、方法がわかりません。 ※例 grep [0-9][0-9][0-9][0-9][0-9] 検索ファイル名 > 出力ファイル名 不明点あればお知らせください。 よろしくお願いします。

専門家に質問してみよう