LinuxForum.Fans
Тема

Не слишком ли громоздко?

Автор: Kettler 34 сообщений 6510 просмотров
#169659
mogul82 написал:
чем?
mogul82 написал:
/ethernet/

может встретится где угодно. и далее тоже.

#169663

в данном случае мы работаем с определенным блоком текста

#169696
mogul82 написал:
в данном случае мы работаем с определенным блоком текста

ваша голова, ваши грабли

#169699
drBatty написал:
ваша голова, ваши грабли

даже не знаю как это воспринимать

#169730
mogul82 написал:
даже не знаю как это воспринимать

очень просто - вы пишете скрипт, и забываете о нём. А через год ваш скрипт намертво валит всю систему. только потому, что какой-то идиот зарегал www.my-ethernet.ru :(

#169783

ну приравняем к полям
regex правд не исправил, точка остается в конце, но это мелочи
[console]awk '$2~/ethernet/ || $2~/ddns-fwd-name/ {{ gsub("[\;\"\=]",""); print $3}}' /home/mogul82/test/ww[/console]
все равно короче у меня -)



[console]awk '$2~"^ethernet" || $2~"^ddns-fwd-name" {{ gsub("[\;\"\=]",""); print $3}}' /home/mogul82/test/ww[/console]

оба будут работать правильно

#169786
mogul82 написал:
awk '$2~"^ethernet" || $2~"^ddns-fwd-name" {{ gsub("[\;\"\=]",""); print $3}}' /home/mogul82/test/ww

оба будут работать правильно

вот вам эти грабли в лоб уже и заехали:

text
  hardware ethernet 00:xx:xx:a1:e5:b3;

НЕ начинается со слова ethernet. Потому-то у меня и длиннее

drBatty написал:
/^\s*hardware ethernet\s+/

видите лишние символы? :P
на самом деле, на sed почти всегда получается короче всего, ибо там команды всегда в 1 символ. Специальный ЯП для одностроков wink

mogul82 написал:
regex правд не исправил, точка остается в конце, но это мелочи
mogul82 написал:
все равно короче у меня -)

ну фапайте на размер недоделанного однострока. :(

#169790

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

#169800

не могу придумать как обойти

172.16.0.56 2011/06/10 2011/06/11 xxx:xxx:xxx:27:a1:01 DIR-320.example.com
172.16.0.56 2011/06/11 2011/06/11 xxx:xxx:xxx:27:a1:01 DIR-320.example.com

чтоб не повторялись.

#169806

man uniq

#169846
Kettler написал:
чтоб не повторялись.

можно потом пройтись sort | uniq

#169849

в массиве? ну лан пробну.

#170049

Спс получилось

text

foreach $item (@data) { $seen{$item}++; } @uniq = sort keys %seen;

foreach $line (@uniq) { print $line ; }

Войдите или зарегистрируйтесь, чтобы ответить.