🦔

正規表現 (Linux)

2021/12/02に公開

grepコマンド

grepコマンドとよく使われるため、grepコマンドのオプションを紹介

grepコマンド
grep -v 文字列               # 文字列にマッチしない行を表示する
grep -i  文字列               # 大文字小文字を区別しない
grep -n  文字列               # 行番号をつけて表示する
grep -E  文字列               # 拡張正規表現を利用するときにつけるオプション (+、? など)

正規表現

メタ文字

. 任意の1文字にマッチ

grep 'er..r' file.txt 

[] カッコ内の文字にいずれかがマッチ

grep 'er[abc]or' file.txt
grep 'err[a-zA-Z]or[0-9]' file.txt

\ メタ文字を打ち消す(エスケープ)

grep '\.com' file.txt

^ 行頭がマッチ

grep '^index' file.txt

$ 行末がマッチ

grep 'com$' file.txt

* 0回以上の繰り返し(その直前の文字が存在しなくてもよい)

grep 'ind*x' file.txt
grep '^ind.*x' file.txt

拡張正規表現

以下のコマンドを使用します

grep -E
egrep

使えるメタ文字が増える

+ 直前の文字の1回以上の繰り返し(直前の文字が少なくても1つは必要)

grep -E 'ind+x' file.txt

? 0回または1回の繰り返し

grep -E 'Beer ?Beer' file.txt

() 正規表現をグループ化する

grep -E '(Wine){2,}' file.txt

| 正規表現をOR(または)条件でつなげることができる

grep -E 'My (Vodka|Wine)' file.txt

Discussion