首页 > 解决方案 > 在我的目录中找到最新的 JSON 文件并确认内容 Mac Terminal

问题描述

我希望能够.json在我的目录中找到最新的文件,然后查看文件并"status": "PASSED"在其中搜索。这可以在 Mac 终端内完成吗?

到目前为止,我有以下内容: find data/results -type f -mmin -60 | grep '.json'

注意:此命令将始终只输出一个 JSON 文件。

这将在我的终端上打印最新.json文件的名称,但我不知道如何阅读它。

先感谢您!

JSON 文件如下所示:

[
    {
        ...,
        "fieldName": "Answer",
        "status": "PASSED",
        "otherFieldName": "OtherAnswer",
        ...
    }
]

标签: macosterminalgrepfindreadfile

解决方案


要在目录中查找最新的 json 文件,您可以执行ls -t *.json | head -n1. 您的命令 (the find … grep) 类似,但如果日期很接近,它可以输出多个文件。我建议的命令总是只会找到最新的。

要 grep 该文件以获取通过状态,您当然会这样做grep PASSED <file>

要组合这些命令,就像终端的所有东西一样,有很多方法可以做到这一点。一种选择是:

ls -t *.json | head -n1 | xargs grep PASSED

另一种选择是:

grep PASSED "$(ls -t *.json | head -n1)"

结果将是相同的。

我在这里向您介绍的技术是“xargs”,它接受输入行并将它们作为参数添加到命令的末尾,以及“命令替换”($()构造),它将命令的那部分替换为其中一个单独命令的结果。


推荐阅读