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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: экранирование. как?  (Прочитано 1226 раз)

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

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
экранирование. как?
« : 31 Октября 2009, 22:19:39 »
есть команда в скрипте
mv -v "$DIR/$1" $DIR2где $1 - имя файла
так вот если имя файла содержит пробелы, то команда не срабатывает
как решить?
у меня можно спросить=)

Оффлайн RandomNT

  • Любитель
  • *
  • Сообщений: 80
    • Просмотр профиля
Re: экранирование. как?
« Ответ #1 : 02 Ноября 2009, 20:55:02 »
все пробелы надо заменить на слеш+пробел "\ "

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: экранирование. как?
« Ответ #2 : 02 Ноября 2009, 22:32:21 »
и как это сделать в скрипте?
у меня можно спросить=)

Оффлайн RandomNT

  • Любитель
  • *
  • Сообщений: 80
    • Просмотр профиля
Re: экранирование. как?
« Ответ #3 : 02 Ноября 2009, 22:50:40 »
Экранировать скорее всего надо при вызыве скрипта, например если вызвать
./myscript my file name.txtто получиться
$1=my
$2=file
$3=name.txt
надо или
./myscript my\ file\ name.txtили
./myscript "my file name.txt"

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: экранирование. как?
« Ответ #4 : 02 Ноября 2009, 22:55:49 »
да это все понятно.. но я не об этом немного.


Пользователь решил продолжить мысль 02 Ноября 2009, 23:31:16:
вот так могу экранировать пробелы
sed 's/^/ /; s/  *\([^"]*\("[^"]*"\)\{0,1\}\)/\\ \1/g'
но как привязать к скрипту, и как седом работать с переменной (возможно ли) ?

« Последнее редактирование: 02 Ноября 2009, 23:31:16 от kostrukov »
у меня можно спросить=)

Оффлайн Dfg

  • Активист
  • *
  • Сообщений: 323
    • Просмотр профиля
Re: экранирование. как?
« Ответ #5 : 03 Ноября 2009, 00:28:02 »
out=$(sed .......)
Может проще воспользоватья перлом?:)

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: экранирование. как?
« Ответ #6 : 05 Ноября 2009, 09:53:28 »
баюсъ я его =))
у меня можно спросить=)

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: экранирование. как?
« Ответ #7 : 05 Ноября 2009, 10:51:16 »
как седом работать с переменной (возможно ли) ?
Конечно, можно.
В седе можно использовать прямые, обратные и двойные кавычки.
Немного заморочно, но всегда проблему можно решить. Эсперименты помогут в этом.

 

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