繁体   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