簡體   English   中英

如何使用引號和正則表達式 grep aa 字符串?

[英]How can I grep a a string with quotes and a regex?

我有一個 JSON 文件,其中包含文件列表及其大小。 我試圖只grep包含文件 size的行,它看起來像這樣:

"filesize": 10000000

我試過單引號

grep -f files.json -o '"filesize":\s[0-9]*'

但我得到的只是這個錯誤(每行一次):

grep: files.json:200: Invalid range end

然后我嘗試轉義雙引號

grep -f files.json -o \"filesize\":\s[0-9]*

我得到了同樣的錯誤。 正則表達式代碼本身似乎很好,因為它在 Notepad++ 中工作(沒有單引號),我只是無法讓它在 shell 中工作。 我嘗試使用 bash 和 zsh。

編輯:解決它:

jq . files.json  | grep -o '"filesize":\s[0-9]*' 

grep-f標志用於指定將從中讀取模式的文件,而不是要處理的數據。 您收到的錯誤是grep抱怨它無法將文件的某些數據解析為模式。

您可以使用以下內容:

grep -o '"filesize":\s[0-9]*' files.json

正如其他人所說,最好使用能夠理解 JSON 語法的工具從 JSON 文件中提取數據,但我們需要查看您的數據結構以根據這些工具之一提供答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM