2012-02-11 89 views
1

我使用curl我想得到它的某个短语,问题是整个文件(我使用curl显示)只包含1行。 我想从这个文件中提取的短语总是以{"name":"headline","link": 开始,它总是以}}结尾。grep从特定字符/单词中读取某些字符/单词

所以问题是,如果有任何方法告诉grep它应该显示所有以{"name":"headline","link":开头的短语,直到它们以下一个}}结尾?

curl http://example.org/file.txt | grep ? 

BTW:

curl http://example.org/file.txt | grep "\{\"name\"\:\"headline\"\,\"link\"\:\"http\:\/\/" 

显示整个文本文件,因为它只是一个衬垫。

+0

那是一个JSON字符串。你能转储完整的JSON在这里或在一个pastebin然后告诉你想要什么类型的输出? – 2012-02-11 19:08:49

回答

1

这将做

grep -o -E '"name":"Rausschmeisser","link":"[^"]+"' 

这会给你的URL的完整列表

egrep -o '"name":"Rausschmeisser","link":"[^"]+' | cut -f8- -d\" 
1

使用-o选项。

另外,如果你想只在{"name":"headline","link":}}之间的东西,用sed。

sed -r 's/{"name":"headline","link":([^}]*)}}/\1/g' 

但确实,得到一个适当的JSON解析器。

相关问题