fc2ブログ

拡張正規表現と egrep その3

今回は、複数の正規表現を組み合わせてみました

1:山田太郎:男:43:東京
2:井上直子:女:19:埼玉
3:山本真一:男:43:福岡
4:千葉信夫:男:16:東京
5:秋山敬一郎:男:44:秋田

100:藤本信:男:40:東京
101:藤本信:男:40:東京
102:加藤純子:女:35:千葉
103:福岡勲:男:41:香川
104:桂井昭宏:男:53:福岡

という内容の costomer.txt というファイルを使い
最初の会員番号を示すフィールドから
指定した会員番号のところを表示するようにします

egrep "^(1|5|103):" costomer.txt
とします
 
結果は
1:山田太郎:男:43:東京
5:秋山敬一郎:男:44:秋田
103:福岡勲:男:41:香川
となります

"^(1|5|103):"
というように、^ の後を囲うことで、行頭の数字になるように
設定しています

もし、"^1|5|103 とすると
最初は目論見どおりですが
後の5 103 は行頭の指定が反映されません

このため、任意のところにしたいときには()での指定が
必要になります

また、egrep のオプションで -o をつけると
マッチする部分のみ表示することも可能です

egrep -o "^(1|5|103):" costomer.txt
とすると
1:
5:
103:

となります

これは、スクリプトなどで修正したときに確認するのに使えそうです

また、このマッチする部分というところを利用して
範囲指定もできます

egrep -o "[0-9].*[0-9]" costomer.txt
とすれば、数字に囲まれている間だけを表示できます

1:山田太郎:男:43
2:井上直子:女:19
3:山本真一:男:43
4:千葉信夫:男:16
5:秋山敬一郎:男:44
100:藤本信:男:40
101:藤本信:男:40
102:加藤純子:女:35
103:福岡勲:男:41
104:桂井昭宏:男:53

応用すれば、単語で範囲指定とかもできそうです

スポンサーサイト



テーマ : Linux
ジャンル : コンピュータ

拡張正規表現と egrep その2

引き続き、拡張正規表現 egrep についてです

今回は、会員番号で検索するというのをやってみます

使用するファイルは
costomer.txt
です

内容は
1:山田太郎:男:43:東京
2:井上直子:女:19:埼玉
3:山本真一:男:43:福岡
4:千葉信夫:男:16:東京
5:秋山敬一郎:男:44:秋田

101:藤本信:男:40:東京
102:加藤純子:女:35:千葉
103:福岡勲:男:41:香川
104:桂井昭宏:男:53:福岡
となっています

それでは、会員番号3桁のところだけを調べます

egrep "^[0-9]{3}:" costomer.txt
これで

101:藤本信:男:40:東京
102:加藤純子:女:35:千葉
103:福岡勲:男:41:香川
104:桂井昭宏:男:53:福岡

となります
まず、最初の^で行頭を意味し
次の [0-9] で 0~9まで
そして {3} で3回繰り返す

つまり、100~999までになります


また、ゾロ目の数値だけを取り出すこともできます

今回は
年齢のフィールドを対象にして年齢がゾロ目の人を表示します

ゾロ目を表示するには、
文字列を()で囲ってグループ化し
さらに
\1 を使って後方参照します
後方参照は \1 を使ってのグループ呼び出しです

egrep ":([0-9])\1" costomer.txt
を実行すると
5:秋山敬一郎:男:44:秋田
となります

この
([0-9])\1
の部分がゾロ目を意味しています


テーマ : Linux
ジャンル : コンピュータ

拡張正規表現と egrep

拡張正規表現は、標準の正規表現にメタキャラを追加し
より柔軟なパターンを追加したものです

以下は、egrep だけで使える正規表現の一例です

?
直前の正規表現の0回もしくは1回の繰り返し

+
直前の正規表現の化言い条の繰り返し

{n}
直前の正規表現のn回の繰り返し

{n,}
直前の正規表現のn回以上の繰り返し

{n,m}
直前の正規表現のn回~m回の繰り返し

正規表現1|正規表現2
いずれかのパターンにマッチ

(正規表現)
正規表現のグループ化

\n
グループ化された n番めの正規表現に
マッチした文字列を呼び出す

というようになります

日経 Linux 2011-03
に例題が載っていますので、明日以降
また例題をみながらやっていきます

テーマ : Linux
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック