rkps commited on
Commit
df6dea4
·
verified ·
1 Parent(s): eabb39e

Update download.sh

Browse files
Files changed (1) hide show
  1. download.sh +18 -9
download.sh CHANGED
@@ -17,23 +17,32 @@ fi
17
  echo "Начинаю обработку файла: $CSV_FILE"
18
  echo "------------------------------------"
19
 
20
- # 1. Пропустить заголовок (первую строку) с помощью tail
21
- # 2. Отфильтровать строки, где в конце есть два числа через пробел
22
- # 3. Взять последнее слово (второе число) с помощью awk
23
- # 4. Пройтись в цикле по каждому найденному ID
 
 
 
 
 
 
 
 
 
 
24
  tail -n +2 "$CSV_FILE" | \
25
- grep -E ',[0-9]+ [0-9]+$' | \
26
- awk -F' ' '{print $NF}' | \
27
  while read -r model_id; do
28
- # Проверяем, что model_id действительно является числом
29
- if [[ "$model_id" =~ ^[0-9]+$ ]]; then
30
  echo "Попытка скачивания модели с ID: $model_id"
31
 
32
  # Выполняем команду скачивания.
33
  # Если команда завершится с ошибкой, выводим сообщение и продолжаем.
34
  download-model "$model_id" || echo "--> Ошибка при скачивании модели $model_id. Продолжаю..."
35
  else
36
- echo "--> Пропущена некорректная строка, получен ID: '$model_id'"
37
  fi
38
  done
39
 
 
17
  echo "Начинаю обработку файла: $CSV_FILE"
18
  echo "------------------------------------"
19
 
20
+ # Используем единую команду awk для фильтрации и извлечения данных:
21
+ # 1. tail -n +2: Пропускаем заголовок CSV.
22
+ # 2. awk -F, '...':
23
+ # -F, : Устанавливаем запятую как разделитель полей (колонок).
24
+ # $NF ~ /^[[:space:]]*[0-9]+ [0-9]+[[:space:]]*$/ :
25
+ # Это условие-фильтр. Оно проверяет, что последнее поле ($NF)
26
+ # соответствует шаблону "число пробел число".
27
+ # [[:space:]]* в начале и конце допускают случайные пробелы.
28
+ # { split($NF, arr, " "); print arr[2] } :
29
+ # Если строка подходит под фильтр, то выполняется это действие:
30
+ # - split($NF, arr, " "): Разбиваем последнее поле (например, "122359 135867") по пробелу
31
+ # и сохраняем результат в массив с именем 'arr'.
32
+ # - print arr[2]: Печатаем второй элемент этого массива, то есть второе число.
33
+
34
  tail -n +2 "$CSV_FILE" | \
35
+ awk -F, '$NF ~ /^[[:space:]]*[0-9]+ [0-9]+[[:space:]]*$/ { split($NF, arr, " "); print arr[2] }' | \
 
36
  while read -r model_id; do
37
+ # Дополнительная проверка на случай, если что-то пошло не так
38
+ if [[ -n "$model_id" && "$model_id" =~ ^[0-9]+$ ]]; then
39
  echo "Попытка скачивания модели с ID: $model_id"
40
 
41
  # Выполняем команду скачивания.
42
  # Если команда завершится с ошибкой, выводим сообщение и продолжаем.
43
  download-model "$model_id" || echo "--> Ошибка при скачивании модели $model_id. Продолжаю..."
44
  else
45
+ echo "--> Пропущен некорректный ID: '$model_id'"
46
  fi
47
  done
48