1. 文字と一致します
。 任意の 1 文字と一致します
[ ] 指定された範囲内の任意の文字と一致します
[:alpha:] アルファベット文字
[: lower : ] 英小文字
[:upper:] 英大文字
[:digit:] 数字
[:alnum:] 英数字
[:space:] キャリッジなどの空白文字(印刷禁止)改行文字、改行文字、垂直タブ、フォームフィード
[:punct:] 句読点文字
[:cntrl:] 制御文字(印刷禁止)
[:print:] 印刷可能文字
使用時 通常は正方形2つ括弧が使用されます。これは次の例で使用されます。
2. 一致回数
* いつでも前の文字と一致します
.* 任意の長さの任意の文字と一致します ( grep "r.*t" /etc/passwd などの貪欲モードに注意してください)
x{m ,n } 前の文字が少なくとも m 回、最大で N 回出現することを指定します。
x{m,} 前の文字が少なくとも m 回出現することを指定します
x{0,n} 前の文字が最大 N 回出現することを指定します
x{m} m 回完全に一致します
?前の文字 0 または 1 回
3. アンカー文字
1.^ 行頭のアンカー grep "^r..t" /etc/passwd
2.$ 行末のアンカー grep " h$" /etc/passwd
3.^$ アンカー空行 grep "^$" /etc/passwd
4.
5.> (b) grep "r..t>" /etc/passwd
の例 (混同しやすい):
には少なくとも 1 つの空白文字が含まれています。 grep "[[:space:]] {1,}" /etc /passwd
には少なくとも 1 つの非空白文字が含まれています grep "[^[:space:]]{1,}" /etc/passwd
には空白文字がありません grep -v " [^[:space:]]{1, }" /etc/passwd
6.() グループ文字 grep "(l..e).*1r"
例:
grep --color "l( [13]):1:.*: 1" /etc/inittab
4. オプション
-v 結果を反転します
-i 大文字と小文字を無視します
-o 一致した文字列 (その他の内容) のみを表示します行は表示されません)
-E 拡張正規表現をサポートします
-A n 一致した行の下に n 行を表示します
-B n 一致した行の上に n 行を表示します
-C n 一致した行の上下に n 行を表示します一致した行
演習:
1. システム内で user1 に関する関連情報を見つけます。 (事前に user11、myuser1 を作成しておきます) (エラーが発生しやすい)
grep "user1" /etc/passwd user1 を含むすべての行
grep "
useradd -c "user1 の叔父" /etc/passwd -c はコメントです
grep "^
2. user で始まり、番号 ユーザー関連情報。
grep "^user[0-9]{1,}>" /etc/passwd
3. /etc/inittab ファイル内の次の 2 行のテキストの特徴を分析し、次のようなパターンを書き込みます。正確に見つけることができる 2 つの行
では、各行の数字が同じである必要があります。
l1:1:wait:/etc/rc.d/rc 1
l3:3:wait:/etc/rc.d/rc 3
grep "l([13]):1:.*: .* 1" inittab
拡張子: 上記のすべての特性に一致します: grep "l([0-9]):1:.*:.* 1" inittab
10 を超える場合は、最小限の一致を追加する必要があります: grep "l( [0-9]{1,}):1:.*:.* 1" inittab
4. /proc/meminfo ファイル内の s で始まる行を大文字と小文字を区別して表示します
grep " ^[sS] " /proc/meminfo
5. /etc/passwd
grep "nologin$" /etc/passwd
の nologin で終わる行を表示します。6. /etc/inittab の # で始まる行を表示します次に、複数の空白文字を含む 1 行または複数の行、空白以外の文字が続きます
grep "^#[[:space:]]{1,}[^[:space:]]" /etc/inittab
7. /etc/inittab に 2 つのコロンの間に数字が含まれる行を表示します
grep ":[0-9]:" /etc/inittab
8. 1 つ以上の /boot/grub/grub.conf ファイルを表示します。空白文字を含む行
grep ":[0-9]:" /etc/inittab
9。 /etc/inittab ファイル内の、番号で始まり同じ開始番号を持つ番号で終わる行を表示します。
grep "^([0-9]).*1$" /etc/inittab
10. /etc/inittab ファイル内の空白行以外を表示します
grep -v "^$" /etc/inittab
11. 現在のネットワークインターフェイスの関連する IP アドレスを取得します (127.0.0.1 を除く)
ifconfig |grep "inet addr" |grep -v "127.0.0.1"| " - f1
ifconfig |grep -A 1 "eth" |grep -o "addr:[0-9.]{1,}"|cut -d: -f2
5. 拡張正規表現
は正規表現とは異なります。 :
() は () に置き換えられます
{} は {}
+ に置き換えられます 一致の数、その前の文字と 1 回以上一致します
| または
例:
は ifconfig の結果と一致します。は 1 ~ 255 の整数です
ifconfig|grep --color -E ""