2015-03-19 101 views
0

我有一個文本文件中的以下內容:grep的正則表達式語法

"ratings": [ 

      ] 

我試圖用grep -E找到上述的所有實例在文本文件中。

這裏是我的正則表達式"ratings": \[\n.*\n.*]但是當我運行命令我得不到任何回報:

grep -E -B3 '\"ratings\": \[\n.*\n.*]' ~/Downloads/sample.txt 

顯然,我做錯了什麼。任何指導什麼?

回答

0

使用pcre grep。

grep -oPz '"ratings": \[\n.*\n.*]' file 

-z,--null數據在0字節的數據線結束時,不換行

OR

$ pcregrep -oM '"ratings": \[\n.*\n.*]' file 
"ratings": [ 

      ] 

更新:

要得到三條線w比賽前出局。

pcregrep -oM '(?:.*\n){2}.*(?=\n.*?"ratings": \[\n.*\n.*])' file 
+0

Pz似乎不是有效的命令 - 嘗試使用'pcregrep -B3'「ratings」:\ [\ n。* \ n。*]'〜/ Downloads/file.txt'仍然沒有運氣 – Tony 2015-03-19 00:44:55

+0

檢查我的更新.. – 2015-03-19 00:47:21

+0

感謝您在匹配行之前獲取三行以及-B3,但是'pcregrep -oMB3'不起作用,'pcregrep -oM -B3' – Tony 2015-03-19 00:50:15