0
Найти на сайте: параметры поиска

 

 

Пакетное переименование

Отдаю на растерзание
  
Сообщений: 0
Очень не хватало в любимой OS пакетного переименования, накидал скрипт...
Установка в любое место из "PATH" посмотреть доступные места установки echo $PATH | sed 's/:/\n/g'
Создаём файл touch '/usr/bin/renamer.sh'
Вставляем текст
Делаем исполняемым chmod +x '/usr/bin/renamer.sh'
Пользуемся!
Добавляем в контекстное меню
nemo > правка > настройки > поведение > пакетное переименование > renamer.sh
Код BASH:
  1.  
  2. #!/bin/bash
  3. # 08_02_2017 автор crossxr250pro@gmail.com
  4.  
  5. which yad &>/dev/null || notify-send 'Установите программу "yad"' 'sudo add-apt-repository ppa:netext/testing\nsudo apt-get update\nsudo apt-get install yad' -i gtk-info
  6.  
  7. export ARGUMENTS="$@"
  8.  
  9. INPUT=$(echo "$1" | sed 's/.......//;s/%/\\\\x/g' | while read s; do echo -e "$s"; done)
  10. INPUT_DIR=$(echo "$INPUT" | sed 's/[^/]*$//')
  11. INPUT_NAME=$(echo "$INPUT" | sed 's/^.*\///;s/\(.*\)\..*/\1/;s/([0-9]\+)$//')
  12.  
  13. RENAMER () {
  14. OUTPUT_NAME="$1"
  15.  
  16. for LINE in $ARGUMENTS
  17. do
  18. NUM=''
  19. INPUT=$(echo "$LINE" | sed 's/.......//;s/%/\\\\x/g' | while read s; do echo -e "$s"; done)
  20. INPUT_DIR=$(echo "$INPUT" | sed 's/[^/]*$//')
  21. OUTPUT_DIR=$(echo "$2" | sed 's/$/\//;s/\/\+/\//g')
  22. [[ "$1" = 'Переместить' ]] && OUTPUT_NAME=$(echo "$INPUT" | sed 's/^.*\///;s/\(.*\)\..*/\1/')
  23. if [[ "$1" = 'Переместить' && "$INPUT_DIR" = "$OUTPUT_DIR" ]]
  24. then notify-send 'Внимание' "$OUTPUT_DIR\nодна и та же папка,\nвыберите другое место назначения" -i gtk-info
  25. break
  26. exit
  27. fi
  28. OUTPUT_RAS=$(echo "$INPUT" | sed '/.*\..*$/!d;s/^.*\././')
  29. [[ -e "$OUTPUT_DIR$OUTPUT_NAME$NUM$OUTPUT_RAS" ]] && NUM='(2)'
  30. while [[ -e "$OUTPUT_DIR$OUTPUT_NAME$NUM$OUTPUT_RAS" ]]
  31. do
  32. (( NUM++ ))
  33. NUM="($NUM)"
  34. done
  35. mv "$INPUT" "$OUTPUT_DIR$OUTPUT_NAME$NUM$OUTPUT_RAS"
  36. done
  37. }
  38. export -f RENAMER
  39.  
  40. KILL () {
  41. sleep 0.5
  42. kill -USR1 "$YAD_PID"
  43. }
  44. export -f KILL
  45.  
  46. HELP () {
  47. echo 'Скрипт для пакетного переименования файлов.
  48.  
  49. Кнопкой "переименовать" файлы принимают вид Name, Name(2), Name(3) и тд.
  50. Если выбрано в поле имени "Переместить" то файлы перемещаются с
  51. оригинальными именами, переместить в эту же директорию нельзя.
  52. Расширения файлов сохраняются во всех случаях...
  53.  
  54. Замечания и предложения по адресу crossxr250pro@gmail.com'\
  55. | sed -e :a -e 's/^.\{1,72\}$/ & /;ta' | yad --text-info --title=Справка \
  56. --window-icon=help --skip-taskbar --width=600 --height=140 --margins=30 \
  57. --back=grey80 --fore=grey7 --on-top --no-buttons --close-on-unfocus 2>/dev/null
  58. exit
  59. }
  60. export -f HELP
  61.  
  62. yad --form --columns='2' \
  63. --window-icon='folder-move' \
  64. --title="$INPUT_DIR" \
  65. --fixed --on-top \
  66. --field='':CBE "$INPUT_NAME!$(date +%d_%m_%y)!@name!Переместить" \
  67. --field='':DIR "$INPUT_DIR" \
  68. --field='!gtk-help!Подсказка':BTN 'bash -c HELP' \
  69. --field='!gtk-refresh!Пере(именовать)местить':FBTN 'bash -c "RENAMER %1 %2 ; KILL"' \
  70. --no-buttons
  71. export -n KILL RENAMER ARGUMENTS HELP
  72. exit
  73.  
Сообщений: 0
вот картинка как выглядит
Редактировалось: 2 раз (Последний: 10 февраля 2017 в 08:57)
Сообщений: 0
Ещё и там поделись
Сообщений: 0
А KRename не подходит?
Сообщений: 0
Для чего этот монстр если нужно просто переименовать файлы?
В начало страницы 
|
Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.