読者です 読者をやめる 読者になる 読者になる

grepやvimで使える正規表現

$ grep [オプション] <検索パタン> <ファイル名>で、ファイルからパタンに一致する内容がある行を抽出
例: /etc ディレクトリから'cron'に一致する内容を抽出

$ ls /etc | grep cron
anacrontab
cron.d
cron.daily
cron.hourly
cron.monthly
crontab
cron.weekly

正規表現まとめ

  • 任意の一文字にマッチ
    ‘.’(ドット) で任意の一文字にマッチングする
    ‘.'自体を検索したい場合は’\.‘を用いる
    例:/etc 内にある ’.conf'ファイルを検索
$ ls /etc | grep '\.conf'
adduser.conf
apg.conf
appstream.conf
brltty.conf
ca-certificates.conf
debconf.conf

  • 特定の一文字にマッチ
    []で囲った中に文字を入れると、その中いずれか一文字に一致するものを検索する。
    例えば kato と sato を同時に検索したければ
    [ks]ato になる。
    [a-z]でa,b,c…zのいずれか一文字
    [^ ]で [ ] の中に含まれない一文字

  • 行頭・行末でマッチ
    ‘^'で行頭、’$‘で行末にあるパタンを検索できる
    例:ホームディレクトリにある隠しファイル(行頭が’.‘)を抽出
$ ls ~ | grep '^\.'
.
..
.adobe
.bash_history
.bash_logout
.bashrc
.cache

grep ^$ で空行を抽出


  • 繰り返しをマッチ
    ‘*'で前の文字の任意回の繰り返しを意味する
    例:Be*r = Ber,Beer,Beeeeer,Beeeeeeeeeeeeeeeer…
    .* はあらゆる文字列にマッチする