
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 に置き換えられ、 と表示されます
\1
。p
最後の は、一致があった場合に結果を印刷するように sed に指示します。