【发布时间】:2013-11-27 09:06:24
【问题描述】:
我有一个包含多次出现的字符串:
element 1 tag1{field1:"text",field2:"text"...},tag2{field1:"text",field2:"text"...},..
element 2 tag1{field1:"text",field2:"text"...},tag2{field1:"text",field2:"text"...},..
我想使用shell提取所有元素的tag1的所有fields1
我的尝试:
sed -n "s/.*\"tag1\":{\"fiel1\":\"\(.*\),\"fiel2\".*/\1/gp"
我得到的只是最后一个,而不是全部。
编辑:问题是整个文本都在一个字符串中,而正则表达式只会让我同时出现一次。
谢谢
【问题讨论】:
-
您通常不应该使用正则表达式来解析结构化数据。如果您可以将其转换为 JSON 或 XML,那么有很多工具可以帮助您。
-
我怀疑文本示例缺少 tag1 周围的引号,并且:或者您的 sed 将永远找不到任何东西