2015-04-07 65 views
2

我已將JSON結構複製粘貼到我的輸入文件的.txt文件中(我將擁有其中的一些)。如何使用BASH從JSON中提取特定文本

我在尋找之間的「開始」和「結束」的「名稱」文本,我輸入文件較大,部分我想從外觀提取這樣的:

Here: "start", 
     title: "Name", 
     type: "end", 
     words: "more words", 

我已經嘗試以下,但它不起作用。

input.txt < sed -n '/^start",$/,/^type: "end"$/p' data > output.txt 

謝謝。

+2

http://stackoverflow.com/questions/1955505/parsing-json-with-sed-and-awk – dgig

回答

0

的data.txt

... 
Here: "start", 
     title: "Name", 
     type: "end", 
     words: "more words", 
... 

sed命令:

$ sed -n '/start",$/,/ *type: "end",$/p' data.txt 

輸出:

Here: "start", 
     title: "Name", 
     type: "end", 

^不會起跑線上,因爲有一個匹配:之前 「在這裏」和「結束」$不匹配結束行,因爲在最後一個引號之後有一個comman。

0

有了您發佈此樣本輸入是所有你需要:

$ awk -F\" '/end/{print t} {t=$2}' file 
Name 

如果這是不夠的,然後拿出包括你認爲將是困難的腳本處理的情況下更真實地代表樣本輸入用。 提取你想要的文本總是微不足道的,很難不提取你不想要的文本。

相關問題