[A-00062]Sedの正規表現についてまとめ

sed(stream editor)の正規表現についてまとめておく。

ここでは一つ一つ例題を上げてそれに対する回答として記載しておく。

・特定の文字列を除去する

sedで正規表現を使用する場合、[-e]オプションを指定する。

下記の例題はpwdでディレクトリパスを表示し、特定の箇所だけを削除する場合である。

この場合は[test]ディレクトリを除去する。

MacBook-Pro:filetest$ pwd
/Users/anonymous/Documents/test/filetest
MacBook-Pro:filetest$ pwd | sed -e "s/\/test//"
/Users/anonymous/Documents/filetest

指定した[s/\/test//]の意味について解説する。

正規表現を指定する場合 s/置換前文字列/置換後文字列/ というように記載する。

s/→これは先頭につけるキーフレーズ

\/→スラッシュ記号は特殊文字であるため、バックスラッシュでその意味を打ち消している。

test→この文字に一致する箇所を指定する

//→本来であればここに/置換後文字列/ という形式にあるが今回は除去なので何も入れていない。

・特定の文字列を置換する

次に上で削除したtest文字列を別の文字列に置換する。これは前述のコマンドを少し編集することで可能である。

MacBook-Pro:filetest$ pwd | sed -e "s/\/test/\/prod/"
/Users/anonymous/Documents/prod/filetest

\/prod→バックスラッシュでスラッシュを打ち消してprodという文字列に置き換えているだけである。

もしくは下記のコードでも同じ結果となる。

MacBook-Pro:filetest$ pwd | sed -e "s/test/prod/"
/Users/anonymous/Documents/prod/filetest

コメントを残す

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

*