Необходимость вывода определённых строк из файла возникла при дальнейшем анализе автоматически созданных отчётов о состоянии Диска Яндекс. Особенно это актуально при использовании нескольких аккаунтов Диска Яндекс с целью определения: вместится ли туда дополнительный объём информации или надо ждать освобождения доступного дискового пространства в результате автоматической очистки его Корзины (или очищать Корзину вручную). После выполнения команды yandex-disk status и записи результатов в файл yandex-disk.txt, например
yandex-disk status > /home/user/reposrts/yandex-disk.txt
в некоторых случаях полученная информация является избыточной. Предметом интереса является только расход дискового пространства, в то время как файл отчёта содержит множество других сведений:
Статус ядра синхронизации: ожидание команды
Путь к папке Яндекс.Диска: '/home/user/Yandex.Disk/account1'
Всего: 43 GB
Занято: 38.44 GB
Свободно: 4.56 GB
Максимальный размер файла: 50 GB
Размер корзины: 6,38 GB
Последние синхронизированные пути:
...
Из полученного файла предмет интереса составляют строки "Занято", "Свободно", "Размер корзины". Другими словами, интерес представляют только строки 4, 5 и 7.
С этой целью создан скрипт на bash, в котором
reports – указание каталога отчётов,
values – указание каталога для записи промежуточных значений,
#!/bin/bash
reports=/home/user/reports
values=/home/user/reports/values
yandex-disk status > $values/accoun1.txt
sed -n -e 4,5p -e 7p $values/account1.txt > $reports/account1.txt
exit
В результате его выполнения получается желаемый результат:
Занято: 38.44 GB
Свободно: 4.56 GB
Размер корзины: 6,38 GB
При "разборе полётов" был использован материал ресурса rus-linux.net.
Комментариев нет:
Отправить комментарий