[sed] 正規表現でキャプチャした文字列を抽出する

作成日: 2022年11月07日

sed コマンドの -E オプションを使用すると、正規表現のキャプチャにマッチした文字列だけを得ることができます。下記の例では、__dummy__ という文字列から dummy という文字列の部分だけを正規表現を使って抽出しています。

echo "__dummy__" | sed -E 's/__(.*)__/\1/'

説明

  • -E オプションを使用します。このオプションは拡張正規表現を使用できます。
  • -E オプションに指定する文字列として s/正規表現/置き換え後の文字列/ という書式を使用します。
  • \1 は正規表現の 1 つ目キャプチャにマッチした文字列を表します。つまり、正規表現の 1 つ目キャプチャにマッチした文字列のみになるように全体の文字列を置き換えます。

実行結果は下記のとおりです。

dummy
Bash Shell command sed