在我的目录中找到最新的 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"($()
构造),它将命令的那部分替换为其中单独命令的结果。
我希望能够在我的目录中找到最新的 .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"($()
构造),它将命令的那部分替换为其中单独命令的结果。