在我的目录中找到最新的 JSON 文件并确认内容 Mac 终端

Find the newest JSON file in my directory and confirm the contents Mac Terminal

我希望能够在我的目录中找到最新的 .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",它接受输入行并将它们作为参数添加到命令的末尾,以及 "command substitution"($() 构造),它将命令的那部分替换为其中单独命令的结果。