$ perl -F- -lane 'print join "-", @F[0..($#F-2)]' googleapis.txt
bucket,abc-def-ghi
bucket,dde-wwq-ooi
instance,jkl-mno-1-zzz
disk,pqr-stu-10-kuy
Каждая входная строка автоматически разбивается на массив @F
с использованием разделителя -
.
Затем он печатает фрагмент массива всех полей, кроме двух последних, повторно -соединенных с -
символами.
Замените вашу запись в crontab ссылкой на этот скрипт, который обновляет вывод только в случае успехаwget
и , где он возвращает файл не -нулевой длины
#!/bin/bash
#
url='https://remote_file_to_pull.json'
user='username'
pass='password'
target='/local_output_file.json'
if wget --quiet --http-user="$user"--http-password="$pass" -O "$target.tmp" "$url" && [[ -s "$target.tmp" ]]
then
# Success
mv -f "$target.tmp" "$target"
else
# Failure of some sort; you might want to report this
:
fi
rm -f "$target.tmp"
Кстати. Я надеюсь, что ваш код был иллюстративным, но обычно не рекомендуется записывать файлы непосредственно в корень файловой системы.