grep 正規表現
1. grep -E "\s+op[0-9]+\[[2-9]+p\]"
頭に複数のスペース、op、数字(0->9)複数、[、数字(2->9)複数、p、]-E :正規表現を使用する
\s:半角スペース、タブ、改行
+:直前の文字の1回以上の繰り返し
[0-9]:[ ]の中のどれか1文字、[ ]内で正規表現は使えない
\[:記号はエスケープする
# grep -E "\s+op[0-9]+\[[2-9]+p\]" *.log
op0[4p] {(sequential Db2_01)
op0[8p] {(parallel Db2_01)
op14[8p] {(parallel buffer(0))
op26[8p] {(parallel buffer(6))
# grep -E "\s+op0\[[8]+p\]" *.log
op0[8p] {(parallel Db2_01)
2. grep どちらかを含む
# cat list.txtabc
def
abcdef
other
# grep -E "abc|def" list.txt
abc
def
abcdef
3.前後の検索
#cat list.txt
2020/07/01
Title1
101 CHAR
102
2020/07/02
Title2
201 CHAR
202 CHAR
#grep -B1 "Title" list.txt #一致した行の前1行も表示する
2020/07/01
Title1
2020/07/02
Title2
#grep -i -B 1 "char" list.txt
#grep -A2 "Title" list.txt #一致した行の後ろ2行も表示する
Title1
101 CHAR
102
Title2
201 CHAR
202 CHAR
4./全角、半角の検索
[/tmp]$ grep "ABC" sakag_in.txt
3,/ABC987/ slash神奈川県大和市,080-9089-2314,bbb.aaa@yahoo.co.jp
8,/ABC987 slash神奈川県大和市,080-9089-2314,bbb.aaa@yahoo.co.jp
9,ABC987/ slash神奈川県大和市,080-9089-2314,bbb.aaa@yahoo.co.jp
10,/ABC987 slash神奈川県大和市,080-9089-2314,bbb.aaa@yahoo.co.jp
11,/ABC987/ slash神奈川県大和市,080-9089-2314,bbb.aaa@yahoo.co.jp
12,ABC987/ slash神奈川県大和市,080-9089-2314,bbb.aaa@yahoo.co.jp
[/tmp]$ grep -E "/+[0-9A-Z]+/+" sakag_in.txt
3,/ABC987/ slash神奈川県大和市,080-9089-2314,bbb.aaa@yahoo.co.jp
[/tmp]$ grep -E "/+[0-9A-Z]+/+" sakag_in.txt
11,/ABC987/ slash神奈川県大和市,080-9089-2314,bbb.aaa@yahoo.co.jp
5. 前後空白または前タブのonを検索
以下のデータからピンク行を検索する。
#cat test.txt
on A=B
on A=B
on A=B
▸-▸-on (test1.MAKENUM = test2.MAKENUM)
\(9)\(9)on (test1.NO_DUMMY = test2.NO_DUMMY)
partition by MAKENUM
union all
# grep -E '^[^a-zA-Z]*on[^a-zA-Z]' `cat test.txt`
(行頭からa-zA-Z以外の文字が1個以上で on、後にa-zA-Z以外の文字を検索する)
on A=B
on A=B
on A=B
▸-▸-on (test1.MAKENUM = test2.MAKENUM)
\(9)\(9)on (test1.NO_DUMMY = test2.NO_DUMMY)
コメント
コメントを投稿