HIR-NETソフト
ソフト一覧
パック商品
価格表
取扱店
Q&A
ダウンロード
無料バージョンアップ
ユーザー登録変更
HIR-NET Home
運営者
運営者著書
CG作品
快適パソコン操作術
パソコン情報リンク集
HIR-NETソフト 32bitコマンド・シリーズ
srhサーチ 第1.31版
ファイル内容検索コマンド
file search command
対象OS:32bit Windows(Windows 95/98/Me/NT/2000/XP など)
★2010年9月9日更新★
サンプル無料ダウンロード srh.lzh(70Kバイト)
| |
|
概要
引数
解説
注意
ファイルとディレクトリの指定方法
改行の判断
設定ファイル
使用例
実行例
関連
ファイル名表示・非表示など柔軟な各種検索機能
| ◆ ▲ |
srhコマンド(ファイル内容検索コマンド)はファイルの中にある文字列を検索する 32bit Windows(Windows 95/98/Me/NT/2000/XP など)用ソフトウェアです。
ファイル名はもちろん、検索文字列にもワイルドカードが使えます。また、ワイルドカードでない検索も出来ますから、記号を含んだ文字列の検索も簡単です。
サブディレクトリ処理はもちろん、処理するファイルをディレクトリ, 識別子, 属性, 日付, サイズ等によって対象外にしたり限定したり出来ます。
検索結果行の先頭にファイル名を付けることも、付けないことも出来ます。UNIX の grep(グレップ)コマンドでは、複数ファイルを検索すると、各行の先頭にファイル名が必ず付いてしまいます。
検索文字列を含んだ行数の表示の他、検索文字列の出現回数を表示することも出来ます。
検索結果の表示を1ページ(通常24行)毎に一時停止させることも出来ます。仮に一時停止指定がされていても、標準出力をリダイレクトした場合は自動解除されます。
1行のバイト数が指定でき、仮にバイト数を越えた行を含んだファイルがあっても、必要なオプション指定を表示しますので、データの取りこぼしがありません。UNIX の grepコマンドでは、取りこぼされてしまいます。
改行コードは、0A, 0D, 0D0A に対応しています。ログ・ファイル出力機能がありますから、大量のファイルを処理する時も便利です。
設定ファイル(ファイル名 srh.cfg のテキスト・ファイル)により、srhコマンドのオプション設定の登録が可能です。
srh □ 検索文字列[□ オプション群]□ ファイル名…
srh □ 検索文字列 □ /f[□ オプション群]
/d ;[ON ] サブディレクトリ処理モード subDirectory
/d- ;[OFF](既定)
/f ;[ON ] ファイル名省略時フィルター・モード Filter
/f- ;[OFF](既定)
;/f を指定し、ファイル名を省略すると、フィルター・モードになり、
;標準入力を検索します。/p が自動設定されます。
/not ;[ON ] 不一致行表示モード NOT
/not- ;[OFF](既定)
/n ;[ファイル名+行 ] 表示モード file Name
/str ;[行 ](既定) STRing
/line ;[ファイル名+行番号] LINE
/c ;[ファイル名+行数 ] line Count
/sc ;[ファイル名+回数 ] String Count
/sum ;[合計行数 ] line SUM
/ssum ;[合計回数 ] String SUM
/list ;[ファイル名 ] LIST
;/n, /str, /line, /c, /sc, /sum, /ssum, /list は何れか1つが有効
/sort ;[OFF] ファイル名ソート・モード SORT
/sort- ;[ON ](既定)
/bin ;[ON ] バイナリ検出モード BINary
/bin- ;[OFF](既定)
/nl ;[ON ] 異種改行コード検出モード NewLine
/nl- ;[OFF](既定)
/continue ;[ON ] 検索失敗時続行モード CONTINUE
/continue- ;[OFF](既定)
/w ;[ON ] ワイルドカード文字列モード Wildcard
/w- ;[OFF ](既定)
/wh ;[先頭一致](/w/h と同じ) Wildcard Head
/wt ;[末尾一致](/w/t と同じ) Wildcard Tail
/wht ;[両端一致](/w/h/t, /wht と同じ) Wildcard Head Tail
/wth ;[両端一致](/w/t/h, /wth と同じ) Wildcard Tail Head
/h ;[先頭一致] 検索文字列先頭一致モード Head
/ht ;[両端一致](/h/t, /th と同じ) Head Tail
/h- ;[OFF ](既定)
/t ;[末尾一致] 検索文字列末尾一致モード Tail
/th ;[両端一致](/t/h, /ht と同じ) Tail Head
/t- ;[OFF ](既定)
/case ;[ON ] 文字列検索半角英大小文字同一視モード CASE
/case- ;[OFF](既定)
/fcase ;[OFF] ファイル名半角英大小文字同一視モード File CASE
/fcase- ;[ON ](既定)
;引数のファイル名のみに作用し、以下のオプションには作用しない。
/sh[<e>[,<e>...]] ;検索対象外先頭一致パス Skip Head path
/sH[<e>[,<e>...]] ;検索対象外先頭一致パス(大小区別)
/st[<e>[,<e>...]] ;検索対象外末尾一致パス Skip Tail path
/sT[<e>[,<e>...]] ;検索対象外末尾一致パス(大小区別)
/sp[<e>[,<e>...]] ;検索対象外パス Skip Path
/sP[<e>[,<e>...]] ;検索対象外パス(大小区別)
/sd[<e>[,<e>...]] ;検索対象外ディレクトリ名 Skip Directory
/sD[<e>[,<e>...]] ;検索対象外ディレクトリ名(大小区別)
/sf[<e>[,<e>...]] ;検索対象外ファイル名 Skip File
/sF[<e>[,<e>...]] ;検索対象外ファイル名(大小区別)
/se[<e>[,<e>...]] ;検索対象外拡張子 Skip Extension
/sE[<e>[,<e>...]] ;検索対象外拡張子(大小区別)
/sa[<a>[,<a>...]] ;検索対象外属性 Skip Attribute
/sA[<a>[,<a>...]] ;検索対象外属性(完全一致)
/lh[<e>[,<e>...]] ;検索限定先頭一致パス Limit Head path
/lH[<e>[,<e>...]] ;検索限定先頭一致パス(大小区別)
/lt[<e>[,<e>...]] ;検索限定末尾一致パス Limit Tail path ※ファイルのみ
/lT[<e>[,<e>...]] ;検索限定末尾一致パス(大小区別) ※ファイルのみ
/lp[<e>[,<e>...]] ;検索限定パス Limit Path
/lP[<e>[,<e>...]] ;検索限定パス(大小区別)
/ld[<e>[,<e>...]] ;検索限定ディレクトリ名 Limit Directory
/lD[<e>[,<e>...]] ;検索限定ディレクトリ名(大小区別)
/lf[<e>[,<e>...]] ;検索限定ファイル名 Limit File
/lF[<e>[,<e>...]] ;検索限定ファイル名(大小区別)
/le[<e>[,<e>...]] ;検索限定拡張子 Limit Extension
/lE[<e>[,<e>...]] ;検索限定拡張子(大小区別)
/la[<a>[,<a>...]] ;検索限定属性 Limit Attribute
/lA[<a>[,<a>...]] ;検索限定属性(完全一致)
/ls[開始サイズ][-[終了サイズ]] ;検索限定サイズ Limit Size
;サイズはバイト値を実数で指定。倍数単位 K, M, G が使用可能。
; K(キロ)=1024, M(メガ)=1024*1024, G(ギガ)=1024*1024*1024
/lydc[開始日時][-[終了日時]] ;検索限定DIR生成日時 Limit Year Directory Create
/lydw[開始日時][-[終了日時]] ;検索限定DIR書込日時 Limit Year Directory Write
/lydr[開始日時][-[終了日時]] ;検索限定DIR読出日時 Limit Year Directory Read
/lyd[開始日時][-[終了日時]] ; /lydw の場合と同じ
/lyc[開始日時][-[終了日時]] ;検索限定ファイル生成日時 Limit Year Create
/lyw[開始日時][-[終了日時]] ;検索限定ファイル書込日時 Limit Year Write
/lyr[開始日時][-[終了日時]] ;検索限定ファイル読出日時 Limit Year Read
/ly[開始日時][-[終了日時]] ; /lyw の場合と同じ
;日時は YYYY[MM[DD[HH[MM[SS]]]]] の形式
;/s〜オプションは OR結合で対象外にする。
;/l〜オプションは AND結合で限定する。同一オプション内は OR結合で限定。
;限定よりも対象外オプションが優先。
;/sd,sD,ld,lD,lyd〜オプションは、ディレクトリのみに作用。
;/sf,sF,se,sE,lf,lF,le,lE,lt,lT,ls,ly〜オプションはファイルのみに作用。
;/s〜,l〜オプションを無効にするには、<e>, <a>, 日時なしで指定。
;<e>は要素(element)で、ファイル名, ディレクトリ名, パス名, 拡張子。
;<e>はワイルドカードも可能(/lh,lH,lt,lT,lp,lP では末尾のみ)。
;先頭末尾一致は \ や : を区切りに比較。
;<a>は属性で、次の文字の組み合わせで指定。
; d:ディレクトリ属性 Directory attribute
; r:読出専用属性 Read only attribute/w:書込可属性 Write attribute
; h:隠しファイル属性(不可視ファイル属性) Hidden file attribute
; s:システムファイル属性 System file attribute
; a:未保管属性 Archive attribute
/v[<m>][<e>...][<m>[<e>...]...] ;表示設定 Verbose
<m>=+ ;付加 plus
- ;削除 minus (省略時)
= ;強制設定 equal
<e>=a ;すべて All
k ;検索対象外ファイル名表示 sKip
e ;検索不能ファイル名表示 Error
f ;終了合計表示(/c時) Finish
/v ;[標準](既定) (/v=ef と同じ)
/time[<n>];処理時間表示開始秒数 TIME
;<n>は整数、負値で表示なし、既定 /time300
/log<file> ;[ON ] ログ・ファイル出力モード LOG file
/LOG<file> ;[追加]
/log ;[OFF ](既定)
;<file>はログ・ファイルのファイル名
/p ;[OFF] 画面一時停止モード Pause
/p- ;[ON ](既定)
/l<n>[<u>] ;[任意値] 1行のバイト数 Line
/l ;[200KB ](既定)
;<n>は実数で 10Kバイト以上、<u>は倍数単位で K, M, G の何れか
/?, /help ;使用方法説明(設定ファイルに登録不可) HELP
【終了コード】
0:エラーなし、実行成功
1:エラー発生、実行中断
2:エラー発生、実行継続
- ファイルの中にある文字列を検索するコマンドです。
- 実行すると、検索文字列を含んだ行が表示されます。
- ファイル名は複数指定可能で、ワイルドカード(?, *)も使用できます。
- /wオプション(ワイルドカード文字列モード[ON])を指定すれば、検索文字列にもワイルドカード(?, *)が使用できます。
? は万能文字で任意の 1バイトの文字と一致します。
* は可変万能文字で任意の 0バイト以上の文字と一致します。
?* は任意の 1バイト以上の文字と一致します。
\, ?, * 自身は \\, \?, \* と記述します。
- /w,/w-オプションとも、空白, タブ, <, >, | を含んだ文字列は"〜"で囲みます。
"自身は \" と記述します。
"〜"内の \ は \\ と記述します。
- BATファイル中で、% を検索する場合は %% と記述します。Windows の BATファイル中では % は引数や環境変数名として使用します。
- /nオプション(表示モード[ファイル名+行])を指定すれば、各行の先頭にファイル名が付きます。
- /notオプション(不一致行表示モード[ON])を指定すれば、検索文字列に一致しない行を表示します。
- /cオプション(表示モード[ファイル名+行数])を指定すれば、検索文字列を含んだ行数が表示されます。
- /scオプション(表示モード[ファイル名+回数])を指定すれば、検索文字列の出現回数が表示されます。
- /fオプション(ファイル名省略時フィルター・モード[ON])を指定し、ファイル名を省略すれば、フィルター・モードとなり、標準入力を検索します。
- <n>を使用するオプションにおいて、<n>の指定がない場合は 0 が指定されたことになります。
- /p-オプション(画面一時停止モード[ON](既定))では、実行結果の表示がページ毎されます。
ページの最後の(Continue,/All/Quit)プロンプトに対し、[C]キー(または[Enter]キー)で継続実行, [A]キーで一時停止を解除し全実行, [Q]キー(または[Esc]キー)で実行停止されます。
なお、出力結果をリダイレクトした場合は、一時停止が自動的に解除されます(/pオプションが指定されたことになります)。
- /Lオプションでは末尾に単位として K(キロ), M(メガ), G(ギガ)が付けられます。
K=1024, M=1024*1024, G=1024*1024*1024
- /lineオプション(表示モード[ファイル名+行番号])の行番号は、1 から始まる行番号です。
- /Lオプション(1行のバイト数)に 10Kバイト未満を指定した場合は、10Kバイトが指定されたものと解釈されます。
- /Lオプションで指定したバイト数を越えた行を含んだファイルは処理せず、必要なオプション指定を示します(/v+eオプション時)。
- フィルター・モード(/fオプションでファイル名省略)時に /listオプションを指定した場合に、文字列が一致した場合は stdin と表示されます。
- /c, /sumオプション(表示モード[ファイル名+行数], [合計行数])は検索文字列を含んだ行数を表示します。
/sc, /ssumオプション(表示モード[ファイル名+回数], [合計回数])は検索文字列の出現回数を表示します。
つまり、/cオプションでは 1行に複数回検索文字列が出現しても 1 と計測されますが、/scオプションでは出現回数分計測されます。
- ファイル名は複数指定可能で、ワイルドカード(?, *)も使用できます。
- 引数がワイルドカードの場合は、ワイルドカードに該当するファイルを処理します。
- 引数がワイルドカードでない場合は、ファイルかディレクトリか自動認識し処理します。引数末尾に \ がなくてもディレクトリの場合はディレクトリとして認識し処理します。
- ワイルドカードで処理するディレクトリを指定したい場合は、/lhオプション(処理限定先頭一致パス)にワイルドカードでディレクトリを指定し、さらに /dオプション(サブディレクトリ処理モード[ON])を指定します。例えば、Cドライブの dir1以下のサブディレクトリ abc? を処理する場合は "srh str /d C:\dir1 /lhC:\dir1\abc?\" とします。なお、"/lhC:\dir1\abc?" ですと C:\dir1直下に abc? に一致するファイルがあった場合、それも処理してしまいます。
- 設定ファイル(srh.cfg)はコマンドのオプションなど各種設定を行うテキスト・ファイルです。内容はテキスト・エディタによって、書き換えることが出来ます。設定ファイルはコマンド起動時にコマンド格納ディレクトリから読み込まれます。設定ファイル名はコマンド・ファイル名に自動追随します。
- スイッチ文字は / の他 - などの追加登録が可能です。
※file.txt, f1 はファイル、d1 はディレクトリ
srh xyz file.txt …… ファイルfile.txt の"xyz"を含む行を表示
srh xyz *.txt …… 拡張子txt のファイルの"xyz"を含む行を表示
srh xyz d1\*.* /d …… ディレクトリd1下の全ファイルを検索
srh xyz d1\readme.txt /d …… ディレクトリd1下の全 readme.txtファイルを検索
srh "Tel>" *.txt …… "Tel>"を含む行を表示
srh 50% *.txt …… "50%"を含む行を表示(非BATファイル内)
srh 50%% *.txt …… "50%"を含む行を表示(BATファイル内)
srh xyz file.txt /not …… "xyz"を含まない行を表示
srh xyz * /case …… 文字列検索半角英大小文字同一視
srh xyz * /case- …… 文字列検索半角英大小文字区別《既定》
srh xyz *.HTM /fcase …… ファイル名半角英大小文字区別
srh xyz *.HTM /fcase- …… ファイル名半角英大小文字同一視《既定》
srh xyz * /sort …… ファイル名ソートなし
srh xyz * /sort- …… ファイル名ソート《既定》
srh xy*1 * …… "xy*1"を含む行を表示
srh xy*1 * /w- …… "xy*1"を含む行を表示(上と同じ動作)《既定》
srh xy*1 * /w …… "xy"〜"1"を含む行を表示
srh 私は * /h …… "私は。"で始まる行を表示
srh です。 * /t …… "です。"で終わる行を表示
srh 私は*です。 * /wt …… "私は"〜"です。"で終わる行を表示
srh 私は*です。 * /wht …… "私は"で始まり、"です。"で終わる行を表示
srh xyz *.txt /n …… ファイル名を先頭に付けて表示
srh xyz *.txt /line …… ファイル名と行番号を先頭に付けて表示
srh xyz *.txt …… "xyz"を含む行を表示
srh xyz *.txt /not …… "xyz"を含まない行を表示
srh xyz *.txt /c …… "xyz"を含む行数を表示
srh xyz *.txt /sc …… "xyz"の出現回数を表示
srh xyz *.txt /sum …… "xyz"を含む合計行数のみを表示
srh xyz *.txt /ssum …… "xyz"の合計出現回数のみを表示
srh xyz *.txt /c /not …… "xyz"を含まない行数を表示
srh xyz *.txt /sum /not …… "xyz"を含まない合計行数のみを表示
srh xyz *.txt /list …… "xyz"を含むファイルを表示
srh xyz *.txt /list /not …… "xyz"を含まないファイルを表示
srh xyz C:\ /d /shC:\d1 c: …… C:\d1 以下は検索しない
srh xyz * /d /shC:d1a,c:d1b c: …… C:d1a と C:d1b 以下は検索しない
srh xyz C:\ /d /shC:\d1a,c:\d1b\*\sc c: …… C:\d1a と C:\d1b\*\sc 以下は検索しない
srh xyz C:\ /d /ltC:\*\ …… Cドライブのルートにあるファイルは検索しない
srh xyz C:\d1 /d /ltC:\d1\*\ …… C:\d1直下にあるファイルは検索しない
srh xyz d1 /d /spd1\sa\f1 …… ファイル d1\sa\f1 は検索しない
srh xyz * /d /sdold …… ディレクトリold 以下は検索しない
srh xyz * /d /sdo* …… ディレクトリo* 以下は検索しない
srh xyz * /d /seobj,exe,jp*g …… 拡張子obj,exe,jp*g は検索しない
srh xyz * /d /se /sa …… 検索対象外拡張子と検索対象外属性を解除し、すべてのファイルを検索
srh xyz * /d /sas,h …… 属性 s, h は検索しない
srh xyz * /d /sas,ds …… 属性 s ファイルと、属性 s のディレクトリ以下は検索しない
srh xyz d1 /d /lhd1\abc?\ …… ディレクトリd1\abc? 以下のみ検索
srh xyz d1 /d /lhd1\abc? /ltd1\*\ …… ディレクトリd1\abc? 以下のみ検索(上と同じ動作)
srh xyz * /d /ls1K …… 1Kバイトのファイルを検索
srh xyz * /d /ls0.9M- …… 0.9Mバイト以上のファイルを検索
srh xyz * /d /ls-1048575 …… 1Mバイト未満のファイルを検索
srh xyz * /d /ls3M-5M …… 3〜5Mバイトのファイルを検索
srh xyz * /d /ly2001 …… 2001年のファイルを検索
srh xyz * /d /ly200104 …… 2001年4月のファイルを検索
srh xyz * /d /ly20010417 …… 2001年4月17日のファイルを検索
srh xyz * /d /ly20010417123456 …… 2001年4月17日12時34分56秒のファイルを検索
srh xyz * /d /ly20010417- …… 2001年4月17日からのファイルを検索
srh xyz * /d /ly20010417-20180625 …… 2001年4月17日〜2018年6月25日のファイルを検索
srh xyz * /d /ly-20180625 …… 2018年6月25日までのファイルを検索
srh xyz * /bin- …… バイナリ検出せず《既定》
srh xyz * /bin …… バイナリを検出した場合処理停止
srh xyz * /nl- …… 異種改行コード検出せず《既定》
srh xyz * /nl …… 2種類以上の改行コードを検出した場合処理停止
srh xyz * /continue …… 検索失敗があっても続行
srh xyz * /continue- …… 検索失敗があったら終了《既定》
srh xyz * /v=e …… エラー表示のみ
srh xyz * /v+k …… 対象外ファイル名表示あり
srh xyz * /v-k …… 対象外ファイル名表示なし《既定》
srh xyz * /c /v-f …… 合計表示なし
srh xyz * /p- …… 画面一時停止あり《既定》
srh xyz * /p …… 画面一時停止なし
srh xyz * /logc:\tmp\f1.log …… c:\tmp\f1.logへログ・ファイル出力
srh xyz * /LOGc:\tmp\f1.log …… ログ・ファイル追加出力
srh xyz * /time60 …… 60秒以上で処理時間表示
srh xyz * /time-1 …… 処理時間表示なし
srh xyz * /L500K …… 1行のバイト数を 500Kバイトで検索
srh /? …… 使用方法説明
C>srh 試験 *.txt↓ …… 一致行表示(ファイル名なし)
この試験方法を以下に示します。
試験結果A
試験結果B
この試験方法を以下に示します。
この試験方法を以下に示します。
試験結果A
試験結果B
この試験方法を以下に示します。
試験結果
C>srh 試験 *.txt /n↓ …… 一致行表示(ファイル名あり)
test.txt:この試験方法を以下に示します。
test.txt:試験結果A
test.txt:試験結果B
test1.txt:この試験方法を以下に示します。
test12.txt:この試験方法を以下に示します。
test12.txt:試験結果A
test12.txt:試験結果B
test123.txt:この試験方法を以下に示します。
test123.txt:試験結果
C>srh 試験 *.txt /line↓ …… 一致行表示(ファイル名と行番号あり)
test.txt:10:この試験方法を以下に示します。
test.txt:20:試験結果A
test.txt:120:試験結果B
test1.txt:11:この試験方法を以下に示します。
test12.txt:11:この試験方法を以下に示します。
test12.txt:20:試験結果A
test12.txt:135:試験結果B
test123.txt:15:この試験方法を以下に示します。
test123.txt:20:試験結果
C>srh ">A" c*.html /c↓ …… 一致行数計測
c2cpp.html :17
c2cpp_c0.html :0
c2cpp_c1.html :0
c2cpp_c2.html :0
c2cpp_org.html:0
c2cpp_t0.html :1
c2cpp_t0c.html:0
c2cpp_t1.html :1
c2cpp_t1c.html:0
c2cpp_t2.html :1
c2cpp_t2c.html:0
cptime.html :12
合計:32
C>srh ">A" c*.html /c /not↓ …… 不一致行数計測
c2cpp.html :278
c2cpp_c0.html :338
c2cpp_c1.html :305
c2cpp_c2.html :338
c2cpp_org.html:338
c2cpp_t0.html :29
c2cpp_t0c.html:31
c2cpp_t1.html :29
c2cpp_t1c.html:30
c2cpp_t2.html :29
c2cpp_t2c.html:30
cptime.html :206
合計:1981
C>srh ">A" c*.html /list↓ …… 一致ファイル一覧
c2cpp.html
c2cpp_t0.html
c2cpp_t1.html
c2cpp_t2.html
cptime.html
C>srh ">A" c*.html /list /not↓ …… 不一致ファイル一覧
c2cpp_c0.html
c2cpp_c1.html
c2cpp_c2.html
c2cpp_org.html
c2cpp_t0c.html
c2cpp_t1c.html
c2cpp_t2c.html
rep ファイル内容置換コマンド
maxline ファイル最大行コマンド
ls 高機能ファイル一覧コマンド
HIR-NETソフト
Copyright (C) 1997-2024 Hirabayashi Masahide プライバシーポリシー