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,如果匹配,它应该打印结果。

相关内容