我希望能够在目录中找到最新的.json
文件,然后浏览该文件并在其中搜索"status": "PASSED"
。这可以在Mac终端中进行吗?
到目前为止,我有以下内容:find data/results -type f -mmin -60 | grep '.json'
注意:此命令将始终仅输出一个JSON文件。
哪个将在我的终端上打印最新的.json
文件的名称,但我不知道如何读取它。
谢谢您!
JSON文件看起来像:
[
{
...,
"fieldName": "Answer",
"status": "PASSED",
"otherFieldName": "OtherAnswer",
...
}
]
要在目录中找到最新的json文件,您可以执行ls -t *.json | head -n1
。您的命令(find … grep
)与之类似,尽管如果日期接近,它可以输出多个文件。我建议的命令将总是只找到最新的。
当然要为通过状态将该文件grep表示为grep PASSED <file>
。
要结合终端设备的所有这些命令,有很多方法可以做到。一种选择是:
ls -t *.json | head -n1 | xargs grep PASSED
另一个选择是:
grep PASSED "$(ls -t *.json | head -n1)"
结果将相同。
我向您介绍的技术是“ xargs”,它接受输入行并将它们作为参数添加到命令的末尾,以及“命令替换”($()
构造),以替换该命令的一部分,用于其中单独命令的结果。