• ベストアンサー

shellで16桁の数字が含まれるファイルをリストアップするという処理

shellで16桁の数字が含まれるファイルをリストアップするという処理を作ろうとしています。 システムの全ファイルを対象にするので、短時間で処理を終えたいです。 アイデアだけでも良いのでお力添え宜しくお願い致します。 動作環境はUNIXです。

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

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

「含まれる」のがファイル内かファイル名かが不明ですが、ファイル名なら find / -type f | grep \d{16} で、ファイル内なら find / -type f -exec grep -l \d{16} {} \; とか。 #試してないので動作は保障しませんが

hamuwa_
質問者

お礼

ありがとうございます。 おかげさまでできました。 find / -type f -exec grep -l '[0-9]\{16\}' '{}' \;

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

ちなみに、grepの正規表現では、 \dに「数字」という特殊な意味はなく、{}も特殊文字ではない。\はシェルで解釈されてしまうので'でくくって grep '[0-9]\{16\}' または grep -E '[0-9]{16}' または egrep '[0-9]{16}' が正解。 他に出てない条件として、 ・きっちり16桁なのか、16桁以上あればいいのか きっちり16桁なら、前後が数字でない(先頭/末尾か数字でない文字)ことも確認しないと grep '\(^\|[^0-9]\)[0-9]\{16\}\($\|[^0-9]\)' または grep -E '(^|[^0-9])[0-9]{16}($|[^0-9])' または egrep '(^|[^0-9])[0-9]{16}($|[^0-9])'

hamuwa_
質問者

お礼

ありがとうございます。 おかげさまでできました。 find / -type f -exec grep -l '[0-9]\{16\}' '{}' \;

関連するQ&A

  • LEFT関数のようなもの(7桁の数字から左の3桁の数字を抜き出す)

    はじめての質問です、よろしくお願いします。 ホームページでのアクセス制限を行うフリーcgiを修正・改造して、目的にかなうように作り替えたいのです。 このアクセス制限で行いたいのは  ・パスワードに7桁の数字を入力(例:1234567)  ・左の3桁(123)だけをパスワードリストに照合。 この「7桁の数字から左の3桁の数字を抜き出す」という部分にお手上げの状態です。 LEFT関数の様なもの、または、そのような処理をする方法について、アドバイスやヒントをお願い致します。 また、入力されたパスワードが7桁かどうかのチェック方法についてもよろしければアドバイス下さい。

    • ベストアンサー
    • Perl
  • grepで40~70の数字をリストアップするコマンドを教えてください。

    grepで40~70の数字をリストアップするコマンドを教えてください。 1 2 3 4 5 ・ ・ ・ のように1~100まで改行して数字が書かれているテキストファイルがあります。 40 41 42 ・ ・ ・ 70 という様にgrepコマンドなどで40~70までを数字をリストアップするコマンドはないでしょうか?

  • 7桁の半角数字かどうかのチェック

    初歩的な質問で失礼ですが if (ereg("([0-9]{7})",$str)) { $strが7桁の数字であるときの処理 } else { $strが7桁の数字でないときの処理 } でうまく動作しません。 何が悪いんでしょうか。eregですか?{7}ですか?それとも俺の頭ですか?

    • ベストアンサー
    • PHP
  • ディスク クリーンアップ をすると、古いファイルの圧縮が7桁も有ります

    ディスク クリーンアップ をすると、古いファイルの圧縮が7桁も有りますが、之を削除するといけないと言われていますが、何故でしょうか?教えて下さい。お願い致します。

  • shellのコンパイルファイルの見分け方

    いつもお世話になっております。 shellプログラミング(bash)で質問なのですが、 C由来のcgiファイルとperl由来のcgiファイルが混在している環境で perl由来のcgiファイルのみに処理を行うことを想定しております。 そのため、C由来のcgiファイルを除外する必要があるのですが、 除外するための方法(条件式等)ご存知でしたらご教授頂けないでしょうか。 宜しくお願い致します。 if [-f FILENAME] では除外できないですよね…

  • WindowsのsystemのKB+6桁のファイルって何?

     Windows98SEの動きが重たくなってきたのでシステムリソースを調べています。  この時、C:\WINDOWS\SYSTEM\の下に「KB918547」等のKB+6桁の数字のフォルダとそのexeファイルを見つけたのですが、これの正体は何でしょうか?またこのチェックを外しても構わないものでしょうか?  いろいろ検索サイトで調べたのですが見つけられませんでしたので、お分かりになる方宜しくお願い致します。

  • 一桁数字を「01」「02」のように変換したい

    一桁数字を「01」「02」のように変換したい MP3ファイルの曲目で現在は下のようになってます。 (ファイル名兼ID3タグ) 1.Come Together.mp3 2.Something.mp3 ------中間省略------ 10.Sun King.mp3 11.Mean Mr. Mustard.mp3 12.Polythene Pam.mp3 13.She Came in Through the Bathroom Window.mp3 ------以下省略------ これを 01.Come Together.mp3 02.Something.mp3 ------中間省略------ 10.Sun King.mp3 11.Mean Mr. Mustard.mp3 12.Polythene Pam.mp3 13.She Came in Through the Bathroom Window.mp3 ------以下省略------ と一桁の先頭に「0」を追加したと考えています。 1.先頭の「1」を「01」に変換する事は可能ですか? 2.先頭の数字から「.」(ピリオド)まで抜く方法はありますか? 3.最適な方法はありますか? 環境 Windows2000sp3 エクセル2000 ID3タグ編集はフリーソフトの「SuperTagEditor」を使っています。 エクセルを使う方法が多いのかと思いこのカテゴリに質問致します。 よろしくお願い致します。

  • Excel : 3桁以上の半角数字を全角にする方法は?

    Excelファイルのテキスト処理で教えていただきたいです。 B列に入っている文章に対して、下記の処理を施したいです。 ●3桁以上の半角数字を全角にする。 ●3文字以上の半角英字を全角にする。 アドバイスいただければ幸いです。 よろしくお願いいたします。

  • excel vba リストアップ?

    超初心者です。 テキストファイルからEXCELへデータを取り込み、ある列のデータより項目を抽出し、コンボボックスへリストアップしたいです。    A列 1.りんご     コンボボックス内に 1.りんご      1.りんご 1.りんご      2.みかん 2.みかん   →  5.なし   2.みかん      10.ぶどう 5.なし        と表示させたい 10.ぶどう 10.ぶどう  ・  ・ なお、A列のデータは毎回変動します。 A列のデータには頭に数字がついており、事前に昇順で並べ替えて あります。 現在、ループを使い、1列ごとに抽出していますが 動作時間の短縮を図りたくて修正しているところです。 ループを使わず、一度に処理できる方法があれば教えてください。 説明がわかりづらいときはすみません。。。

  • intの数字をtimestampに変換したい

    php5,mysql5.1の環境です。 mysqlのフィールドにint(11)でunix timestampを挿入しています。 その11桁の数字の羅列をunixのタイムスタンプ形式に変更したいのですがどのようにすればよいのでしょうか。 うまく説明できないのですが、その11桁の数字はタイムスタンプとしてphp側で処理できないのでしょうか。 mysqlの種別カラムにおいて、int(11)とtimestampは同一のデータとして処理できないのでしょうか。

    • ベストアンサー
    • PHP

専門家に質問してみよう