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


Автор Тема: [РЕШЕНО] sed и переменные [BASH]  (Прочитано 10554 раз)

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

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
[РЕШЕНО] sed и переменные [BASH]
« : 25 Февраль 2011, 01:20:16 »
#пашет
sed 's/one/two/g'
#не пашет
sed 's/one/"$var"/g'
Как побороть? Нужно везде заменить на то что ввел пользователь.
« Последнее редактирование: 25 Февраль 2011, 09:37:45 от RazrFalcon »
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: http://help.ubuntu.ru/wiki/fixme

Оффлайн kom3s

  • Участник
  • *
  • Сообщений: 149
    • Просмотр профиля
Re: sed и переменные [BASH]
« Ответ #1 : 25 Февраль 2011, 01:39:16 »
sed s/one/"$var"/g

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: sed и переменные [BASH]
« Ответ #2 : 25 Февраль 2011, 01:52:04 »
sed: -e expression #1, char 9: unknown option to `s'
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: http://help.ubuntu.ru/wiki/fixme

Оффлайн kom3s

  • Участник
  • *
  • Сообщений: 149
    • Просмотр профиля

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: sed и переменные [BASH]
« Ответ #4 : 25 Февраль 2011, 02:23:49 »
короче:
list=`diff "$drop_path/Stuff/djekerr_list" "$drop_path/Stuff/memory_list" -u | grep ^- | sed -e "s/$memory_path/$memory_path/g" | sed '/Dropbox/d;/Instrumental_Impressions/d'`
sed: -e expression #1, char 10: unknown option to `s'
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: http://help.ubuntu.ru/wiki/fixme

Оффлайн kom3s

  • Участник
  • *
  • Сообщений: 149
    • Просмотр профиля
Re: sed и переменные [BASH]
« Ответ #5 : 25 Февраль 2011, 02:50:22 »
Похоже, что реагирует на / в пути ($memory_path), надо экранировать. Вариант на пробу:
list=`diff "$drop_path/Stuff/djekerr_list" "$drop_path/Stuff/memory_list" -u | grep ^- | sed -e "s%$memory_path%$memory_path%g" | sed '/Dropbox/d;/Instrumental_Impressions/d'`
« Последнее редактирование: 25 Февраль 2011, 02:56:48 от kom3s »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: sed и переменные [BASH]
« Ответ #6 : 25 Февраль 2011, 08:59:39 »
sed "s/one/$var/g"

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: sed и переменные [BASH]
« Ответ #7 : 25 Февраль 2011, 09:18:22 »
 >:(

$ path='/media/data'
$ my='/media/data/Memory about the Past/memory_list'
$ echo $my
/media/data/Memory about the Past/memory_list
$ echo "$my" | sed "s/$path//g"
sed: -e expression #1, char 10: unknown option to `s'
Странно...
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: http://help.ubuntu.ru/wiki/fixme

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: sed и переменные [BASH]
« Ответ #8 : 25 Февраль 2011, 09:28:15 »
al@ubuntu-desktop1:~$ echo "$my" | sed 's/$path//g'
/media/data/Memory about the Past/memory_list
работает.
А с двойными кавычками нет почему-то.
« Последнее редактирование: 25 Февраль 2011, 09:32:25 от alexander.pronin »

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: sed и переменные [BASH]
« Ответ #9 : 25 Февраль 2011, 09:33:31 »
echo "$my" | sed 's/$path//g'
/media/data/Memory about the Past/memory_list
???
не удаляет

echo "$my" | sed "s%$path%%g"
/Memory about the Past/memory_list
:D
kom3s, спасибо.
« Последнее редактирование: 25 Февраль 2011, 09:36:27 от RazrFalcon »
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: http://help.ubuntu.ru/wiki/fixme

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: [РЕШЕНО] sed и переменные [BASH]
« Ответ #10 : 25 Февраль 2011, 09:44:57 »
Еще не проснулся. :idiot2:

 

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