ファイルから文字列を検索する find

cmd.exe
deltreeに続き、 今回は「find」というコマンドの使い方を説明します。
こちらも非常に単純なコマンドで、多分日常で使う事はないのではないかな?と思うのですが、 あるコマンドを説明するよりも先にこのfindを説明しておきたかったので、 とりあえずいつもと同じ様に画像と文章を交えた解説を掲載してみました。
なお、できるだけ初心者にもわかりやすく様々な例を挙げて解説するようにしています。 表現がわかり難い部分もあるかと思いますが、興味のある方は最後までお付き合い下さい。

このページのトップへ
以下はfindの構文とオプションです。
find [/v] [/c] [/n] [/i] [/off[line]] "文字列" ファイル名

/v 指定した文字列を含まない行を検索して全て表示
/c 指定した文字列を含む行の数だけを検索して表示
/n 検索結果と共に行番号も表示
/i 大文字・小文字の区別をしないで検索
/off[line] オフライン属性が設定されたファイルをスキップしない
"文字列"と書かれた箇所には、検索したい文字を入力します。 その際の注意点として、文字列は必ず"(ダブルクォーテーション)で囲まなくてはなりません。 もしもダブルクォーテーション自体を検索したい場合、ダブルクォーテーションの前に「¥」 記号を記述してください。
プログラムなどでは特殊な意味を持った文字がいくつかあり、そのような文字をプログラム内にそのまま記述すると 意味のある文字と認識されてしまい、色々と不具合が出てきます。 なので、そういった特殊な文字を普通の文字列として認識させたい場合は、記述したい文字の直前に 「¥」をつけ、特殊文字として認識させなくします。(エスケープすると言います)
このページのトップへ

ではfindを使ってみましょう。
検索に使うファイルのサンプルとして、sample.txt sample2.txtsample3.txtを用意しました。
findコマンド
sample.txtは、当サイトの右側に見えるカテゴリ名をそのままコピーしました。
sample2.txtは空のテキストファイルです。
sample3.txtは、当サイトの記事の文章をコピーしたものです。
findコマンド
C:¥sample>find "(3)" sample.txt
sample.txtの中の(3)を含む行を検索します。
findコマンド
sample.txtの文字列の中から、(3)を含む行が表示されました。
---------- SAMPLE.TXT
Acer (3)
パソコン工房 (3)
SHARP (3)
FUJITSU (3)
液晶 (3)
サーバ/ストレージ (3)
ウェブ関連のツール・便利サイト他 (3)

このページのトップへ
findコマンド
C:¥sample>find "(3)" sample.txt > find.txt
コマンドラインの前半はさっきの例と同じです。
その後に> find.txtと続いていますが、 これはtreeの記事でも説明した「リダイレクト」と呼ばれる機能を使っています。
このリダイレクトと呼ばれる機能を使うと、 C:¥sample>find "(3)" sample.txtの処理結果の 出力先を指定する事ができます。この機能はかなり便利な機能なので覚えておくと良いと思います。
このリダイレクトにより、ここではfind.txtに出力しています。
findコマンド

findコマンド
sample.txtの文字列の中の(3)を含む行が、テキストに出力されています。

このページのトップへ
findコマンド
C:¥sample>find /n "PC" sample*.txt
今度は/nオプションを指定して、検索文字を含む行と共に「行番号」を表示させてみます。
検索したい文字列は「PC」です。
ファイル名にはワイルドカードを指定し(sample*.txt)、 ファイル名の頭にsampleを含むファイル、つまり sample.txtsample2.txtsample3.txt の3つが検索対象となるように記述しています。
findコマンド
表示の都合上、画像の右端が切れてしまいましたが、このように全てのsample*.txt から、検索文字列を含む行が「行番号」と共に表示されました。
sample2.txtのように検索文字列を含まないファイル名も一応表示されます。
---------- SAMPLE.TXT
[40]各PCショップの特徴など (15)
[42]PC設定関連・豆知識 (26)

---------- SAMPLE2.TXT

---------- SAMPLE3.TXT
[1]あまりPCに詳しくない人ならば、多分殆ど使わないのではないだろうかと思われ・・
このページのトップへ

次は、(パイプ)という機能をfindと組み合わせて使用してみます。
この(パイプ)は>(リダイレクト) と同様、treeの記事でご紹介した機能です。 (パイプ)を使用すると、 先に実行したコマンドの処理結果をそのまま続けて別のコマンドに引き継がせる事ができます。
findコマンド
C:¥sample>find "パソコン" sample.txt | find "デスクトップ"
またもやサイトの表示の都合上、画像の右端が切れてしまいましたが入力したのは上の通りです。
前半では、C:¥sample>find "パソコン" sample.txt のようにsample.txtよりパソコンという文字列を検索しています。
その後「| find "デスクトップ"」と続く事で、 前半のコマンドでおこなった処理の結果を(パイプ)以降のコマンドに引き継がせています。
この流れをまとめると・・
sample.txtからパソコンと言う文字列を検索
↓
パソコンと言う文字列を含んだ行を出力
↓
出力された文字列から、さらにデスクトップを検索
↓
その結果を画面に出力
となります。
まあこの場合、初めから「デスクトップパソコン」と検索すれば良いのですが、 一応例という事でわかりやすい使い方をしてみました。
ちなみにパイプ以降のfindには、ファイル名を指定する必要はありません。 (前半の処理結果を検索対象としているので)
また、ここでは例としてパイプの前にも後にもfindを使用しましたが、 他のコマンドとfindを組み合わせて使用する事もできます。
findコマンド
例のコマンドを実行した結果、このように表示されました。
Lenovo(デスクトップパソコン) (8)
hp(デスクトップパソコン) (12)
このページのトップへ

findの説明はここまでとなります。
ここでご紹介した事はとても簡単なものばかりですが、 同じ事をGUI環境でやろうと思うと、専用のソフトウェアなどに頼らなくてはできない事もあります。
特に、大量のデータやファイルを扱ったりする場合にコマンド環境は威力を発揮します。
なお、しつこいくらいに書いていますが、コマンドプロンプトでは使用するコマンドによっては、 記述を間違えると大変な結果になってしまう場合があります。
ここで掲載しているものは簡単なものばかりですが、 慣れていない方は注意して使用するようにして下さい。(特にdelなど)
このページのトップへ
GUI(Graphical User Interface)
プロンプト
正規表現

※キーマンズネットのIT単語帳ページへ飛びます。
様々なIT専門用語の意味を詳しく知る事ができます。
サイト上の情報利用により生じた損害等には一切責任を持ちません
2009.09.19 Saturday | 初心者でも簡単コマンドプロンプト | comments(0) | trackbacks(0) | 記事URL
▲PAGETOP
同カテゴリーの記事 最新5件
Comment:
Add a comment:











※コメントは管理者が承認後表示されます。
Trackback:
http://shop.denkaseihin.com/trackback/579
※記事と関連性が低い等、管理人が不適当と判断したものについては削除させて頂きます。
新着記事
CATEGORY
まめ知識
COMMENT
  • 巨大なサイズのファイルも一瞬で削除出来るコマンド del
    denkaseihin (04/15)
  • 巨大なサイズのファイルも一瞬で削除出来るコマンド del
    原田 (04/14)
  • HPの h8-1080jpレビュー 内蔵GPU〜GTX580まで可のSandy Bridge搭載マシン
    denkaseihin (09/18)
  • HPの h8-1080jpレビュー 内蔵GPU〜GTX580まで可のSandy Bridge搭載マシン
    ヨーイチ (09/18)
  • HPの h8-1080jpレビュー 内蔵GPU〜GTX580まで可のSandy Bridge搭載マシン
    denkaseihin (09/14)
  • HPの h8-1080jpレビュー 内蔵GPU〜GTX580まで可のSandy Bridge搭載マシン
    MN (09/13)
  • Firefoxでcookieが保存されないという現象が発生したら
    denkaseihin (10/28)
  • Firefoxでcookieが保存されないという現象が発生したら
    KEKE (10/27)
SMTWTFS
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< June 2019 >>
RSS
ARCHIVES
MOBILE
qrcode
LINK

Copyright © 2005 - denkaseihin. All Rights Reserved.