我有一个两行文件,我正在尝试使用 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,如果匹配,它应该打印结果。