🦔
正規表現 (Linux)
正規表現と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