JP1/Advanced Shell
形式
grep[-a][-b][-c][-E][-G][-I][-i][-L][-l][-n] [-q][-R][-r][-s][-U][-v][-w][-x] [-A 数値][-B 数値][-C[数値]] [-e パターン][-f パターンファイルパス名][パターン][パス名 ...]
機能
ファイル内の文字(指定したパターン)を検索します。
引数
- -a
- すべてのファイルをASCIIテキストファイルとして扱います。
- -b
- それぞれ一致した行の先頭にバイト単位のオフセットを表示します。
- -c
- 選択された行数だけ標準出力に表示します。
- -E
- 拡張された正規表現としてパターンを扱います。-Eオプションおよび-Gオプションは最後に指定したオプションが有効となります。
- -G
- パターンを正規表現として扱います。デフォルト値です。-Eオプションおよび-Gオプションは最後に指定したオプションが有効となります。
- -I
- バイナリファイルを無視します。
- -i
- 大文字と小文字を区別しません。
- -L
- パターンを含まないファイルの名前だけを標準出力表示します。-Lオプションおよび-lオプションは,最後に指定したオプションが有効となります。
- -l
- パターンを含むファイルの名前だけを標準出力表示します。-Lオプションおよび-lオプションは,最後に指定したオプションが有効となります。
- -n
- 各出力行にファイルの相対的な行番号を表示します。-cオプション,-Lオプション,-lオプションおよび-qオプションを指定した場合は無視されます。
- -q
- 標準出力には何も出力しません。
- -R|-r
- 検索ディレクトリを再帰的に検索します。
- -s
- 読めないファイルや存在しないファイルは無視します。エラーメッセージを抑止します。
- -U
- バイナリファイルを検索します。ただし,表示はしません。
- -v
- パターンに一致しなかった行を表示します。
- -w
- 指定文字列が単語として含まれている行を表示します。
- 単語とは英数字およびアンダースコア(_)から構成される文字列のことです。また,単語の前後はスペースなどの単語構成文字列以外の文字や,行頭または行末で区切られている必要があります。
- -x
- 指定した文字列とファイルのすべての行を1行ごとに比較して完全に一致した場合に,一致した回数だけ指定した文字列を表示します。
- -A 数値
- 数値で指定した行だけ,パターンにマッチした行のあとの行も表示します。
- -B 数値
- 数値で指定した行だけ,パターンにマッチした行の前の行も表示します。
- -C[数値]
- 数値で指定した行だけ,パターンにマッチした行の前後の行も表示します。数値を省略した場合,前後2行を表示します。この場合,「-A 2 -B 2」と指定したときと同じになります。
- -Cオプションに数値を指定する場合は,-Cオプションと数値の間にスペースを入れないでください。
- -e パターン
- 「-」で始まるパターンを指定するときに使用します。
- -f パターンファイルパス名
- 検索するパターンを1行ごとにパターンファイルのパス名に指定します。パターンの指定がない場合はマッチしません。
- [パターン]
- 検索するパターンを指定します。
- [パス名 ...]
- 検索対象のパス名を指定します。複数指定ができます。パス名を指定しない場合は,検索対象の内容を標準入力から入力できます。ディレクトリ名の指定は,-Rオプションまたは-rオプションを指定した場合に有効です。
戻り値
戻り値 意味 0 正常終了。
- パターンを含む行が存在します。
- -vオプションが指定されている場合は,パターンを含まない行が存在します。
1 正常終了。
- パターンを含む行が存在しません。
- -vオプションが指定されている場合は,パターンを含まない行が存在しません。
2以上 エラー終了
注意事項
- Windowsの場合,シンボリックリンクのリンク先を表示しません。
- ファイルの先頭から8192バイト内に表示可能な1バイト文字,スペース,タブ,バックスペースおよびマルチバイト文字以外のデータが含まれている場合は,バイナリファイルと見なされます。
- Windowsのコマンドプロンプトから実行する場合,パターンをクォーテーションで囲むときは"(ダブルクォーテーション)を使用してください。
- ロケールと異なる文字コードのファイルはバイナリファイルと見なされます。
- Windowsの場合,ファイルおよび標準入力,標準出力をバイナリモードで入出力します。改行コードは変換しません。
使用例
- オプションを指定しない場合のデフォルトを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep ABCD test1.txt ABCDEFGHIJKLMNOPQRSTUVWXYZ 77777777[ABCD]ccccccccc 555555555:ABCD:111111111 ABCD ABCD_XYZ 0000<ABCD>0000 /* ABCD */- 複数ファイル指定して,オプションを指定しない場合のデフォルトを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep ABCD_ test1.txt test2.txt test3.txt test4.txt test1.txt:ABCD_XYZ test2.txt:ABCD_XYZ test3.txt:ABCD_XYZ test4.txt:ABCD_XYZ- -bオプションを指定して,一致した行の先頭にバイト単位のオフセットを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -b ABCD test1.txt 77:ABCDEFGHIJKLMNOPQRSTUVWXYZ 104:77777777[ABCD]ccccccccc 133:555555555:ABCD:111111111 212:ABCD 256:ABCD_XYZ 301:0000<ABCD>0000 316:/* ABCD */- -cオプションを指定して,一致した行数だけ表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -c ABCD test1.txt 7- -iオプションを指定して,大文字と小文字を区別しない指定をした場合を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -i AbCd test1.txt ABCDEFGHIJKLMNOPQRSTUVWXYZ 77777777[ABCD]ccccccccc 555555555:ABCD:111111111 abcdefghijklmnopqrstuvwxyz ABCD abcd ABCD_XYZ 0000<ABCD>0000 /* ABCD */- -Lオプションを指定して,パターンを含まないファイル名だけを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -L ABC_ test1.txt test2.txt test3.txt test4.txt test1.txt test2.txt test4.txt- -lオプションを指定して,パターンを含むファイル名だけを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -l ABC_ test1.txt test2.txt test3.txt test4.txt test3.txt- -nオプションを指定して,各出力行にファイルの相対的な行番号を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -n ABCD test1.txt 4:ABCDEFGHIJKLMNOPQRSTUVWXYZ 5:77777777[ABCD]ccccccccc 7:555555555:ABCD:111111111 10:ABCD 14:ABCD_XYZ 17:0000<ABCD>0000 18:/* ABCD */- -qオプションを指定して,標準出力に何も表示しない指定をした場合を表示します。上段は-qオプションを指定しない場合,下段は-qオプションを指定した場合です。
C:\TEMP>%ADSH_OSCMD_DIR%\grep ABCD_XYZ test1.txt ABCD_XYZ C:\TEMP>%ADSH_OSCMD_DIR%\grep -q ABCD_XYZ test1.txt- -Rオプションを指定して,検索ディレクトリを再帰的に検索した場合を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -R ABCD C:\USR\data C:\USR\data\data_2\data_3\test3.txt:ABCDEFGHIJKLMNOPQRSTUVWXYZ C:\USR\data\data_2\data_3\test3.txt:ABCD333 C:\USR\data\data_2\data_3\test3.txt:ABCD_AS C:\USR\data\data_2\test2.txt:77777777[ABCD]ccccccccc C:\USR\data\data_2\test2.txt:555555555:ABCD:111111111 C:\USR\data\data_2\test2.txt:ABCD222 C:\USR\data\data_2\test2.txt:ABCD_MM C:\USR\data\test0.txt:ABCD_1118 C:\USR\data\test0.txt:ABCD_AS321 C:\USR\data\test0.txt:0000<ABCD>0000 C:\USR\data\test0.txt:/* ABCD */- -sオプションを指定して,エラーメッセージを抑止した場合を表示します。上段は-sオプションを指定しない場合,下段は-sオプションを指定した場合です。
C:\TEMP>%ADSH_OSCMD_DIR%\grep ABCD test5.txt grep: test5.txt: No such file or directory C:\TEMP>%ADSH_OSCMD_DIR%\grep -s ABCD test5.txt- -wオプションを指定して,パターンが独立している場合だけ表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -w ABCD test1.txt 77777777[ABCD]ccccccccc 555555555:ABCD:111111111 ABCD 0000<ABCD>0000 /* ABCD */- -xオプションを指定して,1行に指定文字列だけある場合を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -x ABCD test1.txt ABCD- ファイル(file.txt)の内容で,-xオプションを指定した場合を表示します。
file.txt
ABABAB ACACACAC ABABAB
- 一致しないため,何も表示されません。
grep -x ABA file.txt
- ファイル(file.txt)の1行目と3行目が一致し,次のように表示されます。
grep -x ABABAB file.txt ABABAB ABABAB- -Aオプションで3を指定し,一致した行の後ろ3行も表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -A 3 XYZ test1.txt ABCDEFGHIJKLMNOPQRSTUVWXYZ 77777777[ABCD]ccccccccc -XYZ 555555555:ABCD:111111111 ababababababababababababab abcdefghijklmnopqrstuvwxyz -- ABCD_XYZ asasasasasasasasas01 ASASASASASASAS 0000<ABCD>0000- -Bオプションで3を指定し,一致した行の前3行も表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -B 3 XYZ test1.txt /*-----------------------*/ ABABABABABABABABABABABABAB 012345678901234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ 77777777[ABCD]ccccccccc -XYZ -- JJJJJJJJJJJJJJJJ KKKKKKKKKKKKKKKK abcd ABCD_XYZ- -Cオプションを指定し,一致した行の前後2行も表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -C XYZ test1.txt ABABABABABABABABABABABABAB 012345678901234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ 77777777[ABCD]ccccccccc -XYZ 555555555:ABCD:111111111 ababababababababababababab -- KKKKKKKKKKKKKKKK abcd ABCD_XYZ asasasasasasasasas01 ASASASASASASAS- -eオプションで,-で始まるパターンを指定した場合を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -e "-rw-" file01.txt -rw------- user0001 12 May 12 17:19 a.txt -rw------- user0001 79 May 12 20:36 abc.txt -rw------- user0001 141 May 12 20:36 abcd.txt -rw------- user0001 12 May 12 18:05 b.txt -rw------- user0001 133 May 12 21:49 f01.txt -rw------- user0001 0 May 12 19:42 ff -rw------- user0001 0 May 12 20:54 ff.txt- オプションエラーのメッセージを表示します。
- Windowsの例
このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。
C:\TEMP>%ADSH_OSCMD_DIR%\grep -d grep: illegal option -- d usage: grep [-abcEGIiLlnqRrsUvwx] [-A num] [-B num] [-C[num]] [-e pattern] [-f file] [pattern] [file ...]
- ファイルがない場合のエラーメッセージを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\grep CHECK file99 grep: file99: No such file or directory
All Rights Reserved. Copyright (C) 2011, 2012, Hitachi, Ltd.