sed - обработка табулятора

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
icb
лейтенант
Сообщения: 719
Зарегистрирован: 2008-07-15 16:11:11

sed - обработка табулятора

Непрочитанное сообщение icb » 2016-05-10 13:34:53

Имею файл с такой строкой path<tab>= /
Пытаюсь распарсить этот файл командой

Код: Выделить всё

sed -n 's/^path[ \t]*=[\s]*//p' my.conf
Но ничего не возвращается :(
Если сделаю вместо табулятора пробел, то работает конструкция

Код: Выделить всё

sed -n 's/^path.*=[\s]*//p' my.conf
Но если делаю

Код: Выделить всё

sed -n 's/^path[.]*=[\s]*//p' my.conf
не работает :(

Почему в одном месте срабатывает [], а в другом нет?
Почему не срабатывает \t?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35019
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

sed - обработка табулятора

Непрочитанное сообщение Alex Keda » 2016-05-11 7:06:00

Х.з.
Последний раз такое делал - пришлось именно TAB вписывать в скрипт.
Подобрать регулярку не смог
Убей их всех! Бог потом рассортирует...

icb
лейтенант
Сообщения: 719
Зарегистрирован: 2008-07-15 16:11:11

sed - обработка табулятора

Непрочитанное сообщение icb » 2016-05-11 8:44:59

Похоже дело не просто в табуляторе. Заменяю табулятор на пробел и получаю глюк.
Работает только если указать просто .
Но если точку взять в скобки - не работает. Причем такая же конструкция после = работает.

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1220
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

sed - обработка табулятора

Непрочитанное сообщение xM » 2016-05-11 13:10:58

Мне вот эта штука иногда помогает в написании regexp.
TAB, вроде, там поддерживается в образце обрабатываемой строки.
IT voodoo blog https://kostikov.co

icb
лейтенант
Сообщения: 719
Зарегистрирован: 2008-07-15 16:11:11

sed - обработка табулятора

Непрочитанное сообщение icb » 2016-05-11 13:35:31

Ввожу свою регулярку и тестовые данные - замечательно отрабатывает.
Т.е. сама по себе регулярка нормальная.

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1220
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

sed - обработка табулятора

Непрочитанное сообщение xM » 2016-05-11 13:48:16

Значит дело в файле самом. Возможно у вас там местами вместо TAB пробелы.
IT voodoo blog https://kostikov.co

icb
лейтенант
Сообщения: 719
Зарегистрирован: 2008-07-15 16:11:11

sed - обработка табулятора

Непрочитанное сообщение icb » 2016-05-11 14:31:45

Думал об этом и проверял и даже заменил табулятор на пробел - не помогает.
Как только пробел помещаю в [] правило перестает работать.

Отправлено спустя 5 минут 10 секунд:
А не, дело не в этом. В [] не срабатывают спец.конструкции типа . \s \t
Только пока не очень понятно почему.

FiL
ст. лейтенант
Сообщения: 1357
Зарегистрирован: 2010-02-05 0:21:40

sed - обработка табулятора

Непрочитанное сообщение FiL » 2016-05-11 18:07:42

a какой sed? A то у меня всё работает :)

Код: Выделить всё

$ sed --version
GNU sed version 4.2.1

icb
лейтенант
Сообщения: 719
Зарегистрирован: 2008-07-15 16:11:11

sed - обработка табулятора

Непрочитанное сообщение icb » 2016-05-11 18:38:39

По идее не должно работать, т.к. в sed используются POSIX регулярки - а там другой синтаксис.
Поменял синтаксис и все заработало.

FiL
ст. лейтенант
Сообщения: 1357
Зарегистрирован: 2010-02-05 0:21:40

sed - обработка табулятора

Непрочитанное сообщение FiL » 2016-05-11 18:42:13

Я тоже думал, что не должно. Но сначала решил проверить.