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

관련 정보