拡張正規表現と 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
応用すれば、単語で範囲指定とかもできそうです

コメントを残す

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