Hi! Имеем нечто вроде #!/bin/sh while() do ipfw show xx yy|tr "\n" " "|awk '{....}' done Вопрос - можно ли в awk скрипт переместить вызов набора команд, но так, чтоб их вывод можно было отпарсить. Бо system() вроде как только error code возвращает. А то оно не сильно красиво awk дёргать кучу раз... -- Best regards, Paul Arakelyan. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hi Paul,
Имеем нечто вроде #!/bin/sh while() do ipfw show xx yy|tr "\n" " "|awk '{....}' done
Вопрос - можно ли в awk скрипт переместить вызов набора команд, но так, чтоб их вывод можно было отпарсить. Бо system() вроде как только error code возвращает. А то оно не сильно красиво awk дёргать кучу раз...
Можно. См. getline http://www.gnu.org/software/gawk/manual/html_node/Getline.html -- Michael =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Apr 29, 2005 at 11:21:50AM +0200, Michael Petuschak wrote:
Hi Paul,
Имеем нечто вроде #!/bin/sh while() do ipfw show xx yy|tr "\n" " "|awk '{....}' done
Вопрос - можно ли в awk скрипт переместить вызов набора команд, но так, чтоб их вывод можно было отпарсить. Бо system() вроде как только error code возвращает. А то оно не сильно красиво awk дёргать кучу раз...
Можно. См. getline
http://www.gnu.org/software/gawk/manual/html_node/Getline.html
Странное оно какое-то (или я им странно пользуюсь): #!/bin/sh echo '.' awk '{ "ipfw show 40|grep xmit |grep de0 " | getline aaa; close ("ipfw show 40|grep xmit |grep de0 "); print "a>" aaa; }' Запускаем:
./dynapipe.new . тишина, тыкаем <enter> a>00040 88433287 12831278216 count ip from any to any out xmit de0 тишина, тыкаем <enter> a>00040 88436254 12831577633 count ip from any to any out xmit de0
Ну - и так до опупения, почему-то оно зацикливается(вроде ж никаких циклов я не делал) и почему-то требует тыканья на кнопки. -- Best regards, Paul Arakelyan. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hi Paul,
Странное оно какое-то (или я им странно пользуюсь): #!/bin/sh echo '.' awk '{ "ipfw show 40|grep xmit |grep de0 " | getline aaa; close ("ipfw show 40|grep xmit |grep de0 "); print "a>" aaa; }'
Очень советую как-то в духе писать mycommand="ipfw show 40...." а потом уже mycommand | getline и close (mycommand) потому что в этом примере закрывается уже не то, что запускается :) -- Michael На остановках он, конечно, отдыхал... =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hi Paul, ... А еще
Странное оно какое-то (или я им странно пользуюсь): #!/bin/sh echo '.' awk '{
вот перед вот этой скобкой на строку выше нужно написать слово BEGIN потому что иначе обрабатываются файлы из командной строки и при их отсутствии - stdin
Ну - и так до опупения, почему-то оно зацикливается(вроде ж никаких циклов я не делал) и почему-то требует тыканья на кнопки.
:) -- Michael Hичто так не способствует душевному спокойствию, как полное отсутствие собственного мнения. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Apr 29, 2005 at 11:40:28AM +0300, Paul Arakelyan wrote:
Имеем нечто вроде while(); do ipfw show xx yy|tr "\n" " "|awk '{....}' done Вопрос - можно ли в awk скрипт переместить вызов набора команд,
А почему не устраивает такое: while something; do ipfw show xx yy ; done | tr .... | awk .... ? -- Given its constituency, the only thing I expect to be "open" about [the Open Software Foundation] is its mouth. -- John Gilmore =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Apr 29, 2005 at 03:13:43PM +0300, Bohdan Vlasyuk wrote:
On Fri, Apr 29, 2005 at 11:40:28AM +0300, Paul Arakelyan wrote:
Имеем нечто вроде while(); do ipfw show xx yy|tr "\n" " "|awk '{....}' done Вопрос - можно ли в awk скрипт переместить вызов набора команд,
А почему не устраивает такое:
while something; do ipfw show xx yy ; done | tr .... | awk .... Тоже вариант - но при этом уже поток цифирей обрабатывать в awk'овом скрипте и таки переделывать существующие скрипты. Ну и "просто интересно".
-- Best regards, Paul Arakelyan. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
participants (3)
-
Bohdan Vlasyuk
-
Michael Petuschak
-
Paul Arakelyan