我使用curl我想得到它的某个短语,问题是整个文件(我用curl显示)只包含1行。
我希望从此文件中提取的短语始终以{"name":"headline","link":
开头
它始终以}}
结尾。
所以问题是,是否有任何方法告诉grep它应该显示所有以{"name":"headline","link":
开头的短语,直到它们以下一个}}
结束?
curl http://example.org/file.txt | grep ?
顺便说一句:
curl http://example.org/file.txt | grep "\{\"name\"\:\"headline\"\,\"link\"\:\"http\:\/\/"
显示整个文本文件,因为它只是一个内容。
答案 0 :(得分:1)
使用-o
选项。
grep -o '{"name":"headline","link":[^}]*}}'
或者,如果您只想要{"name":"headline","link":
和}}
之间的内容,请使用Sed。
sed -r 's/{"name":"headline","link":([^}]*)}}/\1/g'
但实际上,请使用正确的JSON解析器。
答案 1 :(得分:1)
这样做
grep -o -E '"name":"Rausschmeisser","link":"[^"]+"'
这将为您提供完整的网址列表
egrep -o '"name":"Rausschmeisser","link":"[^"]+' | cut -f8- -d\"