Linux
sed 正則表達式用於分隔符之間的擷取組
我有一個兩行文件,我試圖從使用 sed 的 bash 腳本中獲取一些資訊。
# File Comment PrefixForInformation {information to be captured}
我需要獲取大括號之間的資訊,但不包括大括號。我有 PCRE 正則表達式,
/{(.*)}/
或者\s{([^}]*)
似乎可以在Online Regex 101中使用,但我無法將其轉換為有效的 sed 配置。
$ sed -n 's/.*{\(.*\)}.*/\1/p' file information to be captured
這個怎麼運作
-n
這告訴 sed 不要列印任何東西,除非我們明確要求它列印。
s/.*{\(.*\)}.*/\1/p
此替代命令將兩個花括號之間的所有內容擷取為第 1 組。整行替換為第 1 組,記為
\1
。最後p
的 sed 告訴 sed,如果匹配成功,它應該列印結果。