如何提取简单的文本并存储到文件中



我正在为hetzner的云API编写bash脚本,我需要将服务器的ID存储到一个文本文件中。使用命令后,它将输出以下内容,

{
"server": {
"id": 12345678,
"name": "servertest-101",
"status": "initializing",
"created": "2020-09-18T09:22:21+00:00",

这只是一个片段,但它来自响应的第一行。

如何提取和存储该值?

api以json格式返回:您没有给出太多信息,但使用jq来解析它:

$ cat myinput.json
{
"server": {
"id": 12345678,
"name": "servertest-101",
"status": "initializing",
"created": "2020-09-18T09:22:21+00:00"
}
}
$ jq -r .server.id myinput.json
12345678

重定向到文件:

$ jq -r .server.id myinput.json > myoutputfile
$ cat myoutputfile
12345678

您可以通过管道输出命令来进一步处理它,如下所示:

cat yourjson.json | grep -m 1 -E -o '"id": [0-9]+' | cut -d" " -f 2 > yourtextfile.txt

首先,获取json内容,然后通过grep命令发送,该命令使用正则表达式仅提取部分"id": 1234567。然后将此结果管道传输到剪切命令,该命令将其拆分一个空间并选择第二个零件,这就是您的值。最后,将作业的结果重定向到所需的文本文件。

如果你确信你的值总是输入中的第一个数字,你可以简单地通过grep:选择它

cat yourjson.json | grep -m 1 -E -o '[0-9]+' > output.txt

相关内容

  • 没有找到相关文章

最新更新