#author("2019-08-13T21:34:50+09:00","","")
#author("2019-08-13T21:35:15+09:00","","")
#navi(../)
* 複数の文字列を指定し文字列検索する・findstr [#mc778f7d]
findstrコマンドを使って、複数の文字列を指定し検索する方法を以下に記します。

#htmlinsert(win-btm.html)
#htmlinsert(win-top.html)
#contents

* 関連記事 [#ve27e66d]
-[[正規表現で文字列検索をする・findstr>コマンドプロンプト/正規表現で文字列検索をする・findstr]]
-[[テキストファイルに行番号を付けて出力する方法・findstr>コマンドプロンプト/テキストファイルに行番号を付けて出力する方法・findstr]]

* 複数文字列を指定しfindstrを実行する [#v1ee14aa]
複数文字列を指定し、findstrコマンドを使って検索する構文は以下のようになります。
 type 対象ファイル名 | findstr "文字列1 文字列2 文字列3"
や
 findstr "文字列1 文字列2 文字列3" ファイル名
のようになります。~
文字列の区切りは半角スペースを指定してください。

** 動作確認用テキストファイル [#tc662faa]
以下のように47都道府県のテキストファイルを用意しました。
#ref(pref.txt)
 北海道 hokkaido
 青森県 aomori
 岩手県 iwate
 宮城県 miyagi
 秋田県 akita
 山形県 yamagata
 福島県 fukushima
 茨城県 ibaraki
 栃木県 tochigi
 群馬県 gunma
 埼玉県 saitama
 千葉県 chiba
 東京都 tokyo
 神奈川県 kanagawa
 新潟県 niigata
 富山県 toyama
 石川県 ishikawa
 福井県 fukui
 山梨県 yamanashi
 長野県 nagano
 岐阜県 gifu
 静岡県 shizuoka
 愛知県 aichi
 三重県 mie
 滋賀県 shiga
 京都府 kyoto
 大阪府 osaka
 兵庫県 hyogo
 奈良県 nara
 和歌山県 wakayama
 鳥取県 tottori
 島根県 shimane
 岡山県 okayama
 広島県 hiroshima
 山口県 yamaguchi
 徳島県 tokushima
 香川県 kagawa
 愛媛県 ehime
 高知県 kochi
 福岡県 fukuoka
 佐賀県 saga
 長崎県 nagasaki
 熊本県 kumamoto
 大分県 oita
 宮崎県 miyazaki
 鹿児島県 kagoshima
 沖縄県 okinawa

** typeを使った実行例 [#aa52c39d]
以下のようにtypeを使ってパイプ(|)によりfindstrに渡した場合の実行例になります。
 O:\>type pref.txt | findstr "okinawa tokyo kanagawa aomori"
 青森県 aomori
 東京都 tokyo
 神奈川県 kanagawa
 沖縄県 okinawa

** findstrに対象ファイルを指定する場合 [#hbf93812]
以下のようにfindstrにファイル名を渡した場合の実行例になります。
 O:\>findstr "okinawa tokyo kanagawa aomori" pref.txt
 青森県 aomori
 東京都 tokyo
 神奈川県 kanagawa
 沖縄県 okinawa

* 使用例 [#h0b80452]
例えば、ExcelとWordファイルをサブディレクトリを含め検索したい場合は、以下のようにできます。
 dir /s /b | findstr /i "\.xls$ \.doc$"
上記のコマンドは、dirコマンドで/s /bオプションをつけることにより、フルパスでサブディレクトリも含むファイル一覧が出力されます。~
この出力をパイプ(|)を使いfindstrに渡しています。~
findstrでは、/iオプションを付け大文字小文字を''区別せず''検索することができます。

以上、findstrで複数の文字列を対象に検索する方法でした。

#htmlinsert(win-btm.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS