区切り記号間のグループをキャプチャするためのsed正規表現

区切り記号間のグループをキャプチャするためのsed正規表現

bashスクリプトに関する情報を取得するためにsedを使用したい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に置き換えられます\1。最後は、psedに一致するものがあれば結果を印刷する必要があることを伝えます。

関連情報