根据 URL 的输出自定义 grep 选项

根据 URL 的输出自定义 grep 选项

我想使用命令查找更新的内核版本,并使用和命令curl查找本地内核版本。grepuname -r

curl -s https://api.linode.com/v4/linode/kernels/linode/latest-64bit | grep "Latest 64 bit *$(uname -r)"

这是我的每个命令的输出

命令

curl -s https://api.linode.com/v4/linode/kernels/linode/latest-64bit

上述命令的输出

{"label": "Latest 64 bit (4.14.12-x86_64-linode92)", "kvm": true, "id": "linode/latest-64bit", "pvops": true, "architecture": "x86_64", "xen": true, "version": "4.14.12"}

命令

uname -r

命令输出

4.14.12-x86_64-linode92

我需要有关curl output of Linode API合作的帮助grep expression

当可以使用 Linode API URL 进行内核更新时,我想使用 grep 命令与 Linode API URL 进行比较。

答案1

为什么你想使用grep对我来说是个谜。您想要的输出可能是:

curl -s https://api.linode.com/v4/linode/kernels/linode/latest-64bit | sed 's/.*(//;s/).*/\n/;'
4.14.12-x86_64-linode92

比较如下:

#!/bin/bash
thiskernel=$(uname -r)
latest=$(curl -s https://api.linode.com/v4/linode/kernels/linode/latest-64bit | sed 's/.*(//;s/).*/\n/;')
if [ "$latest" = "$thiskernel" ] ; then
    echo "Running the latest kernel $latest"
else
    echo "Whoah! check it out! there is a new kernel $latest,"
    echo " and you are running an old legacy $thiskernel"
fi

相关内容