Я отсортировал (по убыванию) вывод в файл в табличном формате из запроса, который я сделал с помощью aws CLI. Мне нужно взять поле из выходного файла и представить все уникальные строки в качестве опции для выбора пользователем. Вот пример выходного файла:
Description Snapshot StartTime
Volume0 snap-x123456789 2020-04-22T20:55:10
Volume10 snap-y123456789 2020-04-22T20:45:09
Volume12 snap-a123456789 2020-04-22T20:40:08
Volume15 snap-b123456789 2020-04-22T20:35:07
Volume0 snap-c123456789 2020-04-22T20:30:06
Volume10 snap-d123456789 2020-04-22T20:25:05
Цель состоит в том, чтобы представить все тома после прочтения указанного выше вывода и предложить пользователю ввести номер тома ИЛИ пользователь может ввести A для ВСЕХ, чтобы система могла восстановить снимок ( s) для этого объема. Примерно так:
0 - Volume0
10 - Volume10
12 - Volume12
15 - Volume15
Вот что у меня есть, как мне заставить пользователя ввести число, соответствующее номеру тома, или ввести ВСЕ, чтобы восстановить все? Должен ли я использовать массив для из выходного файла? Как я могу сделать это эффективно?
output() {
echo "Here is a list of volumes found in $region"
for DR in (grep Volume# "$input" | top -n 1)
do
echo $DR
done
echo "Hello, please tell me what Volume you are searching for..(Volume?):"
read volSearch
echo -e "Searching for newest SnapshotIds in region using output file GetfileSnapId for:\n" $volSearch
echo
sleep 5
input="/Users/user/Downloads/GetfileSnapId"
if x=$(grep -m 1 "$volSearch" "$input")
then
echo
echo "$x"
else
echo
echo "$volSearch not found..ending search"
fi
extractSnap=$(echo "$x" | cut -d'|' -f2 )
echo
echo $extractSnap
regionoutput=$(echo "$extractSnap" | awk '{print $4}' )
echo
echo "$regionoutput"
}