2012-02-11 96 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解析器。

相關問題