Автор: funk2256, 8 месяца назад, написана на языке Plain Text.
Встраивание на сайт
  1. #!/bin/bash
  2. links_number=0
  3. #Создаем файлы
  4. touch packages.txt
  5. touch packages_clear.txt
  6. #Очищаем если уже существуют
  7. echo -n > packages.txt
  8. echo -n > packages_clear.txt
  9. all_packages=$(curl -s https://aur.archlinux.org/packages\?O\=250\&SeB\=nd\&K\=\&outdated\=\&SB\=p\&SO\=d\&PP\=250\&submit\=Go | grep " packages found." | sed '1d'| sed -e 's/[^0-9]//g')
  10. echo 'Всего пакетов' $all_packages
  11. all_pages=$(curl -s curl -s https://aur.archlinux.org/packages\?O\=250\&SeB\=nd\&K\=\&outdated\=\&SB\=p\&SO\=d\&PP\=250\&submit\=Go | grep 'Page ' | sed '1d' | tr -d 'a-z' | tr -d 'A-Z' | tr -d ' ' | sed 's/.//' | sed -e 's/[^0-9]//g')
  12. echo 'Всего страниц' $all_pages
  13. #стартовая страницаcat
  14. start_link="https://aur.archlinux.org/packages?O=0&SeB=nd&K=&outdated=&SB=p&SO=d&PP=250&submit=Go"
  15. curl_link=$(curl -s $start_link | grep  '<a href="/packages' > packages.txt)
  16. sed '1d; 2d; 3d; 4d; 5d; 6d' packages.txt > packages_clear.txt
  17. #cat -n packages_clear.txt
  18. #for
  19. for (( count=0; count <= $all_pages; count++ ))
  20. do
  21. echo $count_pages
  22. echo 'Парсим список пакетов...'
  23. echo 'Всего страниц ' $count 'из' $all_pages
  24. #Заменяем значения в ссылке
  25. count_packages=$(( count_packages+=250 ))
  26. echo $count_packages
  27. one_link="https://aur.archlinux.org/packages?O="
  28. two_link="&SeB=nd&K=&outdated=&SB=p&SO=d&PP=250&submit=Go"
  29. link="${one_link}${count_packages}${two_link}!!!"
  30. echo $link
  31. #Сохраняем все /packages в файл
  32. curl_link=$(curl -s $link | grep  '<a href="/packages' >> packages.txt)
  33. $curl_link
  34. echo $link
  35. sed '1d; 2d; 3d; 4d; 5d; 6d' packages.txt >> packages_clear.txt
  36. echo -n > packages.txt
  37. #Чистим первые 6 строк от мусора, сохраняем в чистый файл
  38. if [ $count == $all_packages ]
  39. then
  40. break
  41. fi
  42. echo "Пакеты синхронизированны"
  43. done
  44. cat packages_clear.txt | tr -d ' ' | sed 's/........//' | sed 's/.\{2\}$//' > packages.tmpp
  45. sort -u packages.tmpp > packages_clear.tmp; mv -f packages_clear.tmp packages.txt
  46. rm packages.tmpp
  47. cat -n packages.txt
  48.