The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Perl)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Perl и символ $, Перспективный (?), 12-Сен-17, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


1. "Perl и символ $"  +/
Сообщение от ыы (?), 12-Сен-17, 23:45 
> Привет, у меня не получается замена с символом $ на perl 5.26.0
> вот так я делаю на sed
> echo "aa bb$ cc"|sed -E 's|\S+\$|XXX|g'
> aa XXX cc
> а вот на perl
> perl -E 'my $p="aa bb$ cc"; $p =~ s/\S+\$/XXX/g;  say "$p"'
> aa bb
> варианты с \Q \E не работают тоже. Как тут правильно делается?

Правильно очевидно - не использовать двойные кавычки там где вы не хотите чтобы $ воспринимался как служебный символ.
Либо надо так "aa bb\$ cc" либо так 'aa bb$ cc'

Ответить | Правка | Наверх | Cообщить модератору

2. "Perl и символ $"  +/
Сообщение от Перспективный (?), 13-Сен-17, 05:41 
> Либо надо так "aa bb\$ cc"

Спасибо так работает, но я получаю данные без экранирования, и меня конечно интересует вариант
> либо так 'aa bb$ cc'

но не работает
perl -E 'my $p='aa bb$ cc'; $p =~ s/S+\$/XXX/g;  say "$p"'
<ничего>


Ответить | Правка | Наверх | Cообщить модератору

3. "Perl и символ $"  +/
Сообщение от ЫЫ (?), 13-Сен-17, 10:52 
>> Либо надо так "aa bb\$ cc"
> Спасибо так работает, но я получаю данные без экранирования, и меня конечно
> интересует вариант
>> либо так 'aa bb$ cc'
> но не работает
> perl -E 'my $p='aa bb$ cc'; $p =~ s/S+\$/XXX/g;  say "$p"'
> <ничего>

потому что однострочник с неэкранированным  спецсимволом ("одинарная кавычка").

Ответить | Правка | Наверх | Cообщить модератору

4. "Perl и символ $"  +/
Сообщение от ЫЫ (?), 13-Сен-17, 10:59 
>>> Либо надо так "aa bb\$ cc"
>> Спасибо так работает, но я получаю данные без экранирования, и меня конечно
>> интересует вариант
>>> либо так 'aa bb$ cc'
>> но не работает
>> perl -E 'my $p='aa bb$ cc'; $p =~ s/S+\$/XXX/g;  say "$p"'
>> <ничего>
> потому что однострочник с неэкранированным  спецсимволом ("одинарная кавычка").

для линукса (под виндой не сработает, экранироваь надо по другому):
perl -e "\$p='aa bb$ cc'; \$p=~s/\S+\\$/XXX/g;  print \$p;"

Ответить | Правка | Наверх | Cообщить модератору

5. "Perl и символ $"  +/
Сообщение от XAnder (ok), 13-Сен-17, 12:25 
> для линукса (под виндой не сработает, экранироваь надо по другому):
> perl -e "\$p='aa bb$ cc'; \$p=~s/\S+\\$/XXX/g;  print \$p;"

Можно проще:

perl -E 'my $p=q{aa bb$ cc}; $p =~ s/\S+\$/XXX/g; say $p'

Ответить | Правка | Наверх | Cообщить модератору

6. "Perl и символ $"  +/
Сообщение от ЫЫ (?), 13-Сен-17, 13:55 
>> для линукса (под виндой не сработает, экранироваь надо по другому):
>> perl -e "\$p='aa bb$ cc'; \$p=~s/\S+\\$/XXX/g;  print \$p;"
> Можно проще:
>
perl -E 'my $p=q{aa bb$ cc}; $p =~ s/\S+\$/XXX/g; say $p'

Ну...Мне кажется вообще странным желание решать задачу через однострочник, подставляя ему значения в виде сформированной в том же однострочнике переменной.
Поэтому возможно что и этот случай не будет удовлетворять желаемому решению...

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру