Son*_*oat 5 linux command-line sed shell-script regular-expression
我有一个两行文件,我正在尝试使用 sed 从 bash 脚本中获取一些信息。
# File Comment
PrefixForInformation {information to be captured}
Run Code Online (Sandbox Code Playgroud)
我需要获取大括号之间的信息,但不包括大括号。我有 PCRE regex/{(.*)}/
或者\s{([^}]*)
它似乎可以在Online Regex 101 中工作,但我无法将其转换为有效的 sed 配置。
$ sed -n 's/.*{\(.*\)}.*/\1/p' file
information to be captured
Run Code Online (Sandbox Code Playgroud)
-n
这告诉 sed 不要打印任何内容,除非我们明确要求它打印。
s/.*{\(.*\)}.*/\1/p
此替代命令将两个花括号之间的所有内容捕获为组 1。整行被替换为组 1,表示为\1
。最后的p
告诉 sed 如果匹配,它应该打印结果。