
我有一個兩行文件,我正在嘗試使用 sed 從中獲取 bash 腳本的一些資訊。
# 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
此替代命令將兩個花括號之間的所有內容捕獲為群組 1。整行被替換為組 1,表示為
\1
。最後的p
告訴 sed,如果匹配,它應該會列印結果。