区切り文字間のキャプチャグループ用の sed 正規表現

区切り文字間のキャプチャグループ用の sed 正規表現

sed を使用して bash スクリプトの情報を取得しようとしている 2 行のファイルがあります。

# File Comment
PrefixForInformation {information to be captured}

中括弧を含まない、中括弧の間の情報を取得する必要があります。PCRE正規表現があります/{(.*)}/が、\s{([^}]*)これはオンライン正規表現 101しかし、それを動作する sed 構成に移行することはできません。

答え1

$ sed -n 's/.*{\(.*\)}.*/\1/p' file
information to be captured

使い方

  • -n

    これは、明示的に要求しない限り、sed に何も印刷しないように指示します。

  • s/.*{\(.*\)}.*/\1/p

    この置換コマンドは、2 つの中括弧の間にあるすべてをグループ 1 としてキャプチャします。行全体がグループ 1 に置き換えられ、 と表示されます\1p最後の は、一致があった場合に結果を印刷するように sed に指示します。

関連情報