Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Скрипт удаление пробелов.  (Прочитано 2000 раз)

0 Пользователей и 1 Гость просматривают эту тему.

izamoo

  • Автор темы
  • Гость
Скрипт удаление пробелов.
« : 17 Января 2012, 12:26:44 »
Пишу простенький скрипт. Замена пробелов в именах файлов на символ подчёркивания.Вот сам скрипт:
#!/bin/bash
cd "$1"
PROBEL=$(ls -1 | grep " ")
echo "$PROBEL"
for i in "$PROBEL";
do
mv "$i" $(echo "$i"|tr " " "_")
done

Вот содержимое папки в которой я пытаюсь переименовать файлы:
vlad@vlad-desktop:~$ ls -1 /home/vlad/Загрузки/
277_Sistemnoe_Administrirovanie_v_Linux.rar
31_awk.rar
gawk.css
miro_3.0.1-0ubuntu2_i386.deb
www.Documentary.Perm.Ru.jpg
www.Netbook.Perm.Ru.jpg
[x-torrents.org]_More Than Friends.mov (1).torrent
[x-torrents.org]_More Than Friends.mov.torrent
Запускаю скрипт на исполнение:
vlad@vlad-desktop:~/Рабочий стол/script$ ./udalenie_probelov /home/vlad/Загрузки/
[x-torrents.org]_More Than Friends.mov (1).torrent
[x-torrents.org]_More Than Friends.mov.torrent
mv: указанная цель «[x-torrents.org]_More_Than_Friends.mov.torrent» не является каталогом
Подскажите что неправильно?

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт удаление пробелов.
« Ответ #1 : 17 Января 2012, 12:49:50 »
Пишу простенький скрипт. Замена пробелов в именах файлов на символ подчёркивания.
Не хочу огорчать, но rename уже есть. =)

И во втором аргументе mv у вас спец. символы не экранированы.

izamoo

  • Автор темы
  • Гость
Re: Скрипт удаление пробелов.
« Ответ #2 : 17 Января 2012, 12:56:54 »
вы меня не огорчили. а какие спец символы во втором аргументе mv? И что вообще сегодня с форумом творится как то он работает хреново.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт удаление пробелов.
« Ответ #3 : 17 Января 2012, 13:09:04 »
а какие спец символы во втором аргументе mv?
mv "$i" "$(echo $i | tr ' ' '_')"
И что вообще сегодня с форумом творится как то он работает хреново.
Хз, я тут полчаса только, глюков не заметил.

izamoo

  • Автор темы
  • Гость
Re: Скрипт удаление пробелов.
« Ответ #4 : 17 Января 2012, 13:17:19 »
теперь вот это:


vlad@vlad-desktop:~/Рабочий стол/script$ ./udalenie_probelov /home/vlad/Загрузки/
[x-torrents.org]_More Than Friends.mov (1).torrent
[x-torrents.org]_More Than Friends.mov.torrent
mv: невозможно выполнить stat для «[x-torrents.org]_More Than Friends.mov (1).torrent\n[x-torrents.org]_More Than Friends.mov.torrent»: Нет такого файла или каталога

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт удаление пробелов.
« Ответ #5 : 17 Января 2012, 13:22:31 »
for i in "$PROBEL";
echo "$PROBEL" | while read i ; do ... "$i" ; done

izamoo

  • Автор темы
  • Гость
Re: Скрипт удаление пробелов.
« Ответ #6 : 17 Января 2012, 13:25:24 »
Цитировать
echo "$PROBEL" | while read i ; do ... "$i" ; done


а можете прокометировать данную строчку?

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт удаление пробелов.
« Ответ #7 : 17 Января 2012, 13:28:17 »
Цикл for меняем на while.

izamoo

  • Автор темы
  • Гость
Re: Скрипт удаление пробелов.
« Ответ #8 : 17 Января 2012, 13:35:52 »
ок. попробую.


P.S. Почему то кнопка цитирования у меня не работает. нажимаешь на нее появляется  сверху полоса "Загрузка" и висит. Может у меня с браузером что то?

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт удаление пробелов.
« Ответ #9 : 17 Января 2012, 13:45:20 »
Почему то кнопка цитирования у меня не работает. нажимаешь на нее появляется  сверху полоса "Загрузка" и висит. Может у меня с браузером что то?
Почистите сессии, куки, кэш, историю.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Скрипт удаление пробелов.
« Ответ #10 : 18 Января 2012, 15:35:59 »
rename 's/ /_/g' *            # пробелы в именах файлах текущей директории заменить на '_'

 

Страница сгенерирована за 0.059 секунд. Запросов: 25.