正規表現で grep 検索を便利に その4

今回は、メタキャラをつかってみようと思います
とくに一番使う * を使ってみます
* は端末で一番使うことが多いと思います
例えば grep *.txt
として .txt の拡張子のものを調べたりといろいろ活用できます
ただし、正規表現になると意味が変わっていますので要注意です
^が行頭だったのに、正規表現にしたら 否定になっているように
*も、~を含むすべて、というような意味合いから
正規表現では
直前の文字、もしくは0回以上のパターンの繰り返し
という意味になっています
0回もカウントしてしまうので、空文字も含みます
まずは、わかりやすく、サンプルを用意しましょう
vi sample.txt
でファイルを作成し
内容を
aa lx
laaaax
lbx 13
11 lax
345
4444456
laas
lbbx
という内容にします
この中から、l で始まりaの繰り返しが何個からあり
最後はx で終わるものを検索するには
grep “laa*x” sample.txt
とします
結果は
laaaax
11 lax
となります
間違えて
grep “la*x” sample.txt
とすると、空白入りの行がでてきます
この応用で、数字だけの行をだせます
grep “^[0-9][0-9]*$” sample.txt
これで
345
4444456
となります
. と * を組み合わせて任意の文字列とマッチさせるというのが
よく使われるそうです
ただし、1個以上の任意の文字列にするなら
.*
ではなく
..*
としますのでご注意

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です