この --include オプションは次のように使用できます:
grep -rn --include='*.c' --include='*.h' re .
上記の場合は複数回指定できます。 , 実際には、
grep -rn --include='*.[ch]' re を使用できます。
ただし、ソース ファイルに C++ ソース コードが含まれている場合、配置できるのは 1 つだけであるため、上記の方法は機能しません。 in [] 文字。
grep -rn --include='*.{cpp,h}' も不可です。
このとき、引用符なしの展開が必要です(これは bash で grep が実行される前に完了していますが、 set -x)
grep -rn --include=*.{cpp,h} re を通じて確認できます。
bash での {A,B} の展開では、対応するファイルが現在のディレクトリに存在するかどうかが無視されます。この書き方は、コマンドラインでの指の疲れを避けることができます。色付きの出力文字列 -e は特別な処理 e を意味します。この e の後には [シンボル
grep 一般的に使用される
grep [-acinv] '検索文字列' ファイル名
パラメータの説明:
-a: バイナリが続きます。ファイルをテキストとして ファイル方法でデータを検索します
-c: 「検索文字列」が見つかった回数をカウントします
-i: 大文字と小文字の違いを無視するため、大文字と小文字は同じとみなされます
-n: 出力ちなみに行番号
-v: 選択を反転します。つまり、「検索文字列」の内容を含まない行を表示します。
1. 特定の文字を検索します
grep 'oo' pp.txt 以下、pp.txt を表すには pp のみを使用します
文字が表示されている行数を表示します
grep -n 'oo' pp
oo 以外の文字を表示する
grep -v 'oo' pp
大文字と小文字で無視される文字を表示する
grep -i 'oo' p
2. [] 検索結果を処理します
taste と test の文字列を表示します
grep -n 't[ae]st' pp ここで、[ae] は文字 a または e としてのみ扱われるため、上記の要件を満たすことができます
t(x)st と一致させたい場合 x が任意の文字の場合、次のように実行できます
grep 't[.]st' pp 記号は任意の文字を表します
を含む情報を表示します。 oo 文字
grep -n 'oo ' pp
oo の前に g 文字情報を入れたくない場合
grep -n '[^g]oo' pp ここでの ^ は非 goo 文字を否定することを意味します
先行する文字以外の文字を取得する
grep -n '[^a-zA-Z]oo' pp
数字の文字を取得する場合
grep -n '[0-9] ' pp // 実際には、これは grep -n ' [0-9[0-9]*' pp * は 0 個以上の繰り返し情報を表します
3.行 $^
最初の行を取得したい場合:
grep -n '^the' pp で始まる文字行
英文字で始まる文字を取得したい場合
grep - n '^[a-zA-Z]' pp
結果は英字で始まる情報ではありません
grep -n '^[^a-zA-Z]' pp // ^内の^は反転です外側の ^ は上記で始まる反転です
小数点で終わる行を取得します
grep -n '.$' pp //小数点はエスケープする必要がある特殊文字です
Pay Windows で改行するときは ^M 記号に注意してください
空白行を取得する方法
grep -n '^$' pp ここでは空白行を取得します
すべてのドキュメントのコメントされていないコンテンツを取得するには、次の操作を行うことができます
grep -v '^$' pp|grep -v ^# 1 つ目は空ではない行を取得することです データの最初のパイプラインは取得することです#
で始まらないデータは、 #
grep -n '^#' pp
で始まる行を取得する可能性が高いと思います。 4. 任意の文字と繰り返し文字
:絶対に任意の文字
* : 0 個以上の同一文字
gf の途中に 2 文字あるデータを表示するには
grep -n 'g..f' pp
少なくとも の文字列があるo
grep -n 'oo*' pp //* は 0 以上を表すため
は g で始まり g で終わり、少なくとも 1 つの o
grep -n 'goo* g'
gg の途中に任意の文字を含む文字列を検索します
grep -n 'g.*g' pp ここでは、任意の文字を表します
5. 修飾子 {}
連続する 2 つの文字列があります。 o は間にあります
grep -n 'go{2,5}p'
少なくとも 2 文字を検索します
grep -n 'go{2,}p' pp
2 つだけの文字列を検索します文字
grep -n 'go{2}p' pp
6. 重要な特殊文字
^word 検索する文字列(単語)は旅の始まりです!
例: grep -n '^#' pp #で始まる行を検索します!
word$検索する文字列(単語)は行末です!
例: grep -n '!$' pp は !! で終わる行を出力します。
任意の文字を表します
例; grep -n 'g.' pp は g で始まる 2 つの文字を出力します
例: grep -n ' pp一重引用符で囲まれた行の場合
*: 0 個以上の文字に一致
grep -n 'o*' pp 0 個以上の o を持つ文字に一致
{n,m}: 一致の数
grep -n 'o{2}' pp は 2 つの oo 文字を含む文字を出力します
[] は 1 つの文字に一致します
1.[list] : [abl] abl のいずれかに一致します
2.[^ xx]: 文字を否定します。ここで否定できるのは 1 文字だけです。複数の文字を否定したい場合は、
3.[char1 -char2]: [a-z] などの特定の範囲内のデータを照合する必要があります。 [A-Z][0-9]
7. 展開された grep --- >egrep これは grep -E
grep -v '^$' pp | と同等です。 egrep で表現される
egrep -v '^$|^'
8. 「or」関係を持つコンテンツを検索します:
#番号 23 または 24 を持つコンテンツを検索し、コンテンツと行番号を表示します。
grep -E '23|24' * -n
9. data.txt ファイルに空の行が何行あるか調べます:
grep ' ^$' data.txt -c
10現在のディレクトリにディレクトリがいくつあるかをクエリします:
ls -l | grep '^d'
11.Contents of a
grep 'a$' data で終わる data.txt ファイル文字列を見つけます。 txt -i -n $ grep "sort it" * (#またはすべてのファイル内の単語 "sort it" をクエリ)以下のすべての例 単一ファイルでのクエリを指します
行一致$ grep -c "48" data.f
$ 4 (#g r e p は数値 4 を返します。 4 行に文字列「4 8」が含まれていることを意味します。)$ grep " 48" data.f (#4 行を表示「4 8」文字列を含むテキスト)
一致するパターンに一致する行の数を表示します:
[root@mypc oid2000]# grep -n 1234 111.txt
1: 1234
3:1234ab
6。 match
[root@mypc oid2000]# grep "1234>" 111.txt
1234
^ と $ を一緒に使用して空行をクエリします。実際の行数を表示するには、-n パラメーターを使用します
[root@mypc oid2000]# grep -n "^$" 111.txt (戻り値 2: #2 行目が空行であることを示します)
[root@ mypc oid2000]# grep - n "^abc" 111.txt (#abc で始まる行をクエリ)
8. $ . ' " * [] ^ | + ? などの特殊文字、特殊な意味を持つクエリ文字を照合します。これは特定の文字の前に追加する必要があります。
[root@mypc oid2000]# grep "." 111. txt (#在111.txt 「.」を含む行をすべてクエリします)
[root@mypc oid2000]# grep "my.conf" 111.txt (#ファイル名 my.c o n f の行をクエリします)
[root@mypc oid2000]# ls –l |grep “^d” (#ディレクトリリスト内のディレクトリをクエリしたい場合)
[root@mypc oid2000]# ls –l |grep “^d[d ]” (#ディレクトリ内で、ディレクトリを含まないすべてのファイルをクエリします)
[root@mypc]# ls –l |grep “^d…..x..x” (#他のユーザーとディレクトリのセットをクエリします)ユーザーグループのメンバーは実行権限を持っています)
10. 自分自身を除外します
ps -ef|grep telnet | grep -v grep (表示されたプロセスの中から「telnet」プロセスを抽出し、ps 内の grep プロセスを破棄します)