- Perl и символ $, ыы, 23:45 , 12-Сен-17 (1)
> Привет, у меня не получается замена с символом $ на 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'
- Perl и символ $, Перспективный, 05:41 , 13-Сен-17 (2)
> Либо надо так "aa bb\$ cc"Спасибо так работает, но я получаю данные без экранирования, и меня конечно интересует вариант > либо так 'aa bb$ cc' но не работает perl -E 'my $p='aa bb$ cc'; $p =~ s/S+\$/XXX/g; say "$p"' <ничего>
- Perl и символ $, ЫЫ, 10:52 , 13-Сен-17 (3)
>> Либо надо так "aa bb\$ cc" > Спасибо так работает, но я получаю данные без экранирования, и меня конечно > интересует вариант >> либо так 'aa bb$ cc' > но не работает > perl -E 'my $p='aa bb$ cc'; $p =~ s/S+\$/XXX/g; say "$p"' > <ничего> потому что однострочник с неэкранированным спецсимволом ("одинарная кавычка").
- Perl и символ $, ЫЫ, 10:59 , 13-Сен-17 (4)
>>> Либо надо так "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;"
- Perl и символ $, XAnder, 12:25 , 13-Сен-17 (5)
> для линукса (под виндой не сработает, экранироваь надо по другому): > 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'
- Perl и символ $, ЫЫ, 13:55 , 13-Сен-17 (6)
>> для линукса (под виндой не сработает, экранироваь надо по другому): >> 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' Ну...Мне кажется вообще странным желание решать задачу через однострочник, подставляя ему значения в виде сформированной в том же однострочнике переменной. Поэтому возможно что и этот случай не будет удовлетворять желаемому решению...
|