Вы также можете сделать это с помощьюgrep -E
in="192.168.15.73.64759"
echo $in | grep -Eo "([[:digit:]]{1,3}\.){4}" | grep -Po "(.*)(?=\.$)
~#: 192.168.15.73
-E позволяет использовать расширенные регулярные выражения, а -P для совместимости с Perl позволяет включать последнюю точку в шаблон, но исключать ее из вывода
Я смог сделать это следующим образом. Это относится к моему случаю и может быть разным для каждого сценария.
Первый запрос токена авторизации:
uri_token="https://xxx.yy/TokenURI"
body="grant_type=password&username=user1&password=password1"
curl -s -X POST -d $body -H "Content-Type: Text" $uri_token
Затем я получил список идентификаторов ФАЙЛОВ, используя токен, полученный в заголовке:
uri_get_list="https://xxx.yy/FileSearchParameter
headers="Authorization: Bearer $token"
curl -s -X GET -H "$headers" $uri_get_list
Затем запросил идентификатор задания, используя идентификатор ФАЙЛА для загрузки файлов :
.uri_request=https://xxx.yy/requestapi
body=$(echo \"$FILE_ID\")
headers="Authorization: Bearer $token"
JobID=$(curl -s $uri_request -X POST -H "$headers" -H "Content-Type: application/json" -d [$body]
Затем загрузил файл, используя идентификатор задания, полученный на предыдущем шаге.
uri_download="https://xxx.yy/jobid/"$JobID"
headers="Authorization: Bearer $token"
curl $uri_download -X GET -H "$headers" -o /file/path/to/downloaded