sed 正規表示式用於捕捉分隔符號之間的群組

sed 正規表示式用於捕捉分隔符號之間的群組

我有一個兩行文件,我正在嘗試使用 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,如果匹配,它應該會列印結果。

相關內容