#author("2019-08-13T21:36:28+09:00","","") #navi(../) * 正規表現で文字列検索をする・findstr [#eb440334] findstrコマンドで正規表現を用いた文字列検索をすることが可能です。~ ただし、findstrの正規表現ですが、基本的なものだけとなっています。~ 以下にfindstrを使用した例をいくつか記します。 #htmlinsertpcsp(win-top.html,win-sp.html) #contents #htmlinsertpcsp(win-top.html,win-sp.html) * 関連記事 [#p8d0c7bb] -[[正規表現で文字列検索をする・findstr>コマンドプロンプト/正規表現で文字列検索をする・findstr]] -[[テキストファイルに行番号を付けて出力する方法・findstr>コマンドプロンプト/テキストファイルに行番号を付けて出力する方法・findstr]] -[[複数の文字列を指定し文字列検索する・findstr>コマンドプロンプト/複数の文字列を指定し文字列検索する・findstr]] * findstrで使ってみる [#u25a4266] 以下にfindstrを使った例をいくつか記します。 ** オプションなしでfindstrを実行(パイプを使用) [#i442eb36] dirで出力されたファイル一覧からDIRを文字列を表示しています。 dir | findstr 検索文字列 - 実行結果 c:\Users\sakura>dir | findstr DIR 2012/09/25 17:04 <DIR> . 2012/09/25 17:04 <DIR> .. 2012/09/12 15:06 <DIR> .thumbnails 2012/09/12 14:33 <DIR> Contacts 2012/09/27 16:39 <DIR> Desktop 2012/09/25 17:49 <DIR> Documents 2012/09/27 15:53 <DIR> Downloads 2012/09/12 14:33 <DIR> Favorites <snip> ** オプションなしでfindstrを実行(ファイル指定) [#b75aaba6] Windowsディレクトリにあるlogファイルを対象にie9を検索した結果です。~ findstr 検索文字列 対象ファイル - 実行結果 c:\Windows>findstr ie9 *.log WindowsUpdate.log:2012-09-25 16:59:54:518 980 e8c DtaStor WARNING: Attempted to add URL http://download.windowsupdate.com/msdownload/update/softwa re/secu/2012/09/ie9-windows6.1-kb2744842-x64_5d795303eee8eeb1d0f927edea10102ec59 4f9c2.msu for file XXlTA+7o7rHQ+Sft6hAQLsWU+cI= when file has not been previousl y added to the datastore WindowsUpdate.log:2012-09-25 17:00:07:241 980 e8c Handler Adding i e9-windows6.1-kb2744842-x64.cab (entire file) to request list. WindowsUpdate.log:2012-09-25 17:00:10:225 980 e8c DnldMgr * Down <snip> この例では、*を使用し拡張子がlogであるファイル全てを対象として検索しています。 ** 検索文字列の間にスペースが含まれる場合の検索方法 [#r4011ff3] 検索文字列の間にスペースが含まれる場合は、/C:オプションを使用します。 findstr /C:"スペースを含む検索文字列" *.log - 実行結果 Windowsディレクトリにあるlogファイルを対象にWindows 7 operating system detected文字列を検索した結果です。~ c:\Windows>findstr /C:"Windows 7 operating system" *.log IE9_main.log:00:04.625: INFO: Windows 7 operating system detected. ** 行の先頭から始まる文字列の検索 [#s0262e1e] いくつかの検索方法を以下に記します。 - オプション/Bを使用 オプション/Bを利用して指定した検索文字列の検索条件が先頭から始まることを指定します。 検索するファイル内容 C:\Users\sakura\Desktop>type text.txt abcdef1 defabc1 abcdef2 defabc2 abcdef3 defabc3 実行結果 C:\Users\sakura\Desktop>findstr /B abc text.txt abcdef1 abcdef2 abcdef3 - オプション/Rによる先頭文字検索 オプション/Rにより正規表現検索であることを指定しています。''^''は先頭をあらわしています。 findstr /R "^検索文字列" ファイル名 実行結果 C:\Users\sakura\Desktop>findstr /r "^abc" text.txt abcdef1 abcdef2 abcdef3 - スペースを含む先頭文字検索 スペースを含む先頭文字列の検索は以下のようにしました。 findstr /R /C:"^スペースを含む検索文字列" ファイル名 検索するファイル内容 C:\Users\sakura\Desktop>type text2.txt a bcdef1 defa bc1 a bcdef2 defa bc2 a bcdef3 defa bc3 実行結果 C:\Users\sakura\Desktop>findstr /r /c:"^a bc" text2.txt a bcdef1 ** 行の最後にある文字列検索 [#w05cc10d] いくつかの検索方法を以下に記します。 - オプション/Eを使用 オプション/Eを利用して指定した検索文字列の検索条件が行の末尾にあることを指定します。 findstr /e 検索文字列 ファイル名 検索するファイル内容 C:\Users\sakura\Desktop>cat text3.txt abc2def1 def2abc1 abc3def2 def3abc2 abc1def3 def1abc3 実行結果~ 検索文字列が行末にある行が表示されます。 C:\Users\sakura\Desktop>findstr /e 3 text.txt abcdef3 defabc3 C:\Users\sakura\Desktop>findstr /e c3 text.txt defabc3 - オプション/Rによる行末文字検索 オプション/Rにより正規表現検索であることを指定しています。''$''は行末をあらわしています。 実行結果 C:\Users\sakura\Desktop>findstr /r "3$" text.txt abcdef3 defabc3 ** 正規表現による検索例 [#ncda398a] オプション/Rを使用した正規表現検索の例をいくつか紹介します。 - [数値-数値]で指定する 使用したテキストファイル C:\Users\sakura\Desktop>cat text4.txt windows1 windows2 windows3 windows4 windows5 windows6 windows7 windows8 windows9 実行結果 C:\Users\sakura\Desktop>findstr /r "windows[3-5]" text4.txt windows3 windows4 windows5 - [数値-数値]以外 ''^''を指定してNOTとしています。 C:\Users\sakura\Desktop>findstr /r "windows[^3-7]" text4.txt windows1 windows2 windows8 windows9 ** 検索結果に行番号を付ける [#b13adace] オプションNを使用することにより検索された行の行番号が表示されます。 実行例 C:\Users\sakura\Desktop>findstr /n /r "windows[^3-7]" text4.txt 1:windows1 2:windows2 8:windows8 9:windows9 ** 大文字小文字を区別しない [#lc6f7a04] オプションIを使用することにより大文字・小文字を区別しないようになります。 実行例 C:\Users\sakura\Desktop>findstr windows text4.txt windows1 windows2 windows3 windows4 windows5 windows6 windows7 windows8 windows9 C:\Users\sakura\Desktop>findstr Windows text4.txt C:\Users\sakura\Desktop>findstr /I WiNdoWs text4.txt windows1 windows2 windows3 windows4 windows5 windows6 windows7 windows8 windows9 * findstrのヘルプ [#za18181b] 上記では、findstrの使いかたの一部を紹介しました。~ findstr /?で使用方法が表示されますので、詳細な検索方法を知りたい場合は、findstr /?を実行してヘルプをみてみてください。 #htmlinsertpcsp(win-btm.html,win-sp.html)