У меня есть этот bash / awk код для работы с хостами

$ echo 'the.pattern to change' | awk '{sub(/the./,"")}{print $1}'
pattern

Мне нужно заменить awk на perl. Любая идея, как заменить вторую часть утверждения Perl Oneliner?

-1
eswues 19 Окт 2017 в 10:26

3 ответа

Лучший ответ

Как насчет:

echo 'the.pattern to change' | perl -aE '$F[0] =~ s/the\.//; say $F[0]'

< Сильный > Вывод :

pattern
0
Toto 19 Окт 2017 в 12:50

Еще один способ:

echo 'the.pattern to change' | perl -lpe 's/the\.//;$_=(/[^ ]+/g)[0];'

command execution example

2
a1111exe 20 Окт 2017 в 21:37

Вы можете использовать Perl one liner с функцией split.

Нам нужно разделить символ, используя the. и space. Таким образом, вы можете использовать RegEx внутри функции split.

echo 'the.pattern to change' | perl -aF"/the\.|\s/" -ne 'print $F[1],"\n";'

-a режим автоматического разделения

echo 'the.pattern to change' | perl -ane '$F[0]=~s/the\.//; print $F[0],"\n";'
-1
mkHun 19 Окт 2017 в 14:00