正規表現を使ったテキストストリームの検索と加工

 

●正規表現 : あるパターンの文字列を表現する手段

メタキャラクタ 説明
 .  ピリオド 任意の1文字

[例]
ab..e   abで始まりeで終わる5文字の文字列
 ^   行の先頭

[例]
^a   行の先頭にあるa
 $  ドル記号 行の最後

[例]
^$    行の最初と最後の間に何もない空白を表す
 *  アスタリスク 直前の文字が任意回数繰り返し

[例]
a*c   a とc の間に0回以上繰り返し入っている任意の文字列を表す
(ワイルドカードのアスタリスクとは意味が異なる)
 [ ] 括弧 [ ]内の文字のいずれか1文字

[例]
[abc]   abc の内どれか1文字

[a-z]   a からz の間のいずれか1文字(ハイフンを用いて範囲指定)

[^0-9]  数字以外の1文字(^で〜以外を指定)

 \ バックスラッシュ 直後の1文字を文字列として処理

[例]
\.   正規表現としてのピリオド(任意の1文字 )ではなく文字列として扱う

 

 

●sedコマンド: 正規表現にマッチした文字列を置換・削除する
(処理結果を保存するにはリダイレクトを使用)

書式 主なオプション 補足 主なコマンド
sed [オプション] コマンド [ファイル名]

sed [オプション] -e コマンド1 [-e コマンド2] [ファイル名]

sed [オプション] -f スクリプト [ファイル名]

-e
コマンドを指定

-f
コマンドが記述されたスクリプトを指定

s/A/B :
各行最初に現れるパターンAをパターンBに置換する

s/A/B/g :
全てのパターンAをパターンBに置換する

/A/d :
パターンAをにマッチする文字列が含まれる行を削除する

' 行番号A, 行番号B ' :
行番号Aから行番号Bまでの行を削除する

 

 

●grepによるファイル検索

テキストストリーム内から正規表現で指定した検索パターンにマッチした文字列が含まれる行を表示する

書式 主なオプション 補足
grep [オプション] 検索パターン [ファイル名]

grep [オプション] [-f ファイル名] [ファイル名]

-c
パターンにマッチ行数のみを表示

-n
パターンにマッチした行と行番号を表示

-v
パターンにマッチしない行を表示
(デフォルト動作の逆)

-i
大文字と小文字の区別なしに検索する

-f
ファイルから検索パターンを読み込んで検索する

-E
拡張された正規表現も使用する

 

 

 

 

 

inserted by FC2 system