skripty - ako zo std vystupu vziat 3. stlpec

Sekcia: Konfigurácia 26.05.2006 | 02:24
Avatar Frantisek Klabzuba Debian  Používateľ
Ahoj. Potreboval by som spracovat vystup s programu typu "ps" tak ze s napr. tretim stlpcom nieco budem dalej robit. Neviete niekto ako na to? Uvazujme bash + std nastroje ako sed atd... # nejaky_program 1 sdfg 123 a 2 fgsdfg 1233 b 3 dfgdfg 332 c 4 fff 6763 d 5 ghg 432 e
    • Re: skripty - ako zo std vystupu vziat 3. stlpec 25.05.2006 | 11:43
      Tomas   Návštevník
      skus napriklad # nejaky_program | awk '{print $3}'
      • Re: Re: skripty - ako zo std vystupu vziat 3. stlp 25.05.2006 | 13:35
        Avatar Frantisek Klabzuba Debian  Používateľ
        Ok, poviem rovno co by som potreboval. Pomocou "ps" chcem vypisat procesy "XYZ" a ich casi, ak bude niektory proces spusteny viac ako 5 minut tak si to chcem zapisat do logu, spustat to chcem cronom kazdych 5 minut: #!/bin/bash for i in `ps -o pid,user,comm,time|grep XYZ|sed y/\ /_/`; do RIADOK=`echo $i | sed y/_/\ /` CAS=`awk {print $4}` if [ __cas_je_vacsi_ako_5_minut__ ]; then echo $RIADOK >> dlhe_procesy.log fi Neviem ale ako sparvit tu podmienku __cas_je_vacsi_ako_5_minut__ Neviete niekto ako na to? dvh
        • Re: Re: Re: skripty - ako zo std vystupu vziat 3. 26.05.2006 | 02:23
          Avatar svacko gentoo,hp-ux  Používateľ
          no ja mam radsej perl :) #!/usr/bin/perl use strict; use warnings; my $date = `date`; open OUT,">>/tmp/log" or die "Nemozem otvorit log: $!"; print OUT "$date\n"; my @ps=`ps -eo "%p %c %t"`; foreach my $line (@ps) { if ($line =~ /\s*\d+\s+\w+.*\s+(\d+)\:.*/) { print OUT $line if ($1 > 5); } } close OUT;
          • Re: Re: Re: Re: skripty - ako zo std vystupu vziat 26.05.2006 | 02:24
            Avatar svacko gentoo,hp-ux  Používateľ
            regularny vyraz mi tam samozrejme hodilo zle,idem uz spat,zajtra ti ho poslem spravny ;) s.