linux - 提取大括号之间的文本

标签 linux shell braces

我有一个字符串:

MESSAGES { "Instance":[{"InstanceID":"i-098098"}] } ff23710b29c0220849d4d4eded562770 45c391f7-ea54-47ee-9970-34957336e0b8

我需要提取 { "Instance":[{"InstanceID":"i-098098"}] } 部分,即从第一次出现的 '{' 到最后出现的 '}' 并将其保存在单独的文件中。

最佳答案

如果您的文件中有此内容,

sed 's/^[^{]*//;s/[^}]*$//' file

(这将打印到标准输出。重定向到文件或捕获到变量中或执行您想要用它执行的任何操作。)

如果您将其放在名为 MESSAGES 的变量中,

EXTRACTED=${MESSAGES#*{}
EXTRACTED="{${EXTRACTED%\}*}}"

关于linux - 提取大括号之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25542269/

相关文章:

linux - 如何找到连接usb设备的dev路径?

c - 是什么导致每次渲染新颜色之间出现第二次延迟?

java - Java 中的范围规则

javascript - jinja url 命名路由转义大括号文字

linux - 有人能解释一下这个 "Shellshock"代码在 shell 中是如何工作的吗

linux - 在嵌入式 Linux 上安装依赖的 yum

windows - 有没有办法获取所有已安装程序的安装路径?

c++ - 如何确定是从终端还是 GUI 运行

C 命令行界面 - 类似于 BASH 中的历史功能

javascript - 多余的花括号