Portál AbcLinuxu, 13. května 2025 22:06

Dotaz: BASH

petka avatar 23.10.2009 20:53 petka | skóre: 25 | blog: heydax | Klasterec N/O
BASH
Přečteno: 262×
Odpovědět | Admin
Mam dotaz na shell , uz si s tim lamu hlavu dost dlouho a porad nemuzu dojit k tizenymu vysledku. Pr. Mam adresar s daty koncici koncovkou log LOG=`ls | grep '.log'` a v kazdem souboru znak , ktery davam do promene. awk '{print $6}' souboru mam nekolik a proto je potrebuju zpracovat v cyklech a z nich tahat urcity znak , ktery dal zpracovavam . Cele se mi to nedari dat dohromady , muze me nekdo nasmerovat tim spravnym smerem.
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.10.2009 20:57 kuka
Rozbalit Rozbalit vše Re: BASH
Odpovědět | | Sbalit | Link | Blokovat | Admin
nevim jestli jsem to spravne pochopil, ale co treba for cyklus?
petka avatar 23.10.2009 21:00 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: BASH
vim while read ;do

done

ale nevim jak to zkominovat
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
23.10.2009 21:18 kuka
Rozbalit Rozbalit vše Re: BASH
napriklad toto postupne vypise nazev souboru: for file in `ls *.log`; do echo $file; done, vypsani muzes nahradit svoji akci, samozrejme je treba si dat jeste pozor na soubory s mezerami v nazvu a podobne chutovky, pokud to hrozi
petka avatar 23.10.2009 21:35 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: BASH
a jestlize mam v akci celej cyklus if fi ?
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
23.10.2009 21:46 Ash | skóre: 53
Rozbalit Rozbalit vše Re: BASH
Mně to nevadí, tobě jo?
petka avatar 23.10.2009 21:49 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: BASH
uz mam hotovy cyklus if fi s tim ze cyklus mi bral jen jeden soubor , takhle ale potrebuju brat vsechny s koncovkou log.
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
23.10.2009 23:01 Ash | skóre: 53
Rozbalit Rozbalit vše Re: BASH
No tak je berte ne?
shopt -s nullglob
for file in *.log; do
  if [[ "$file" == "mujfile" ]]; then
    echo ok
  else
    echo ko
  fi
done
23.10.2009 21:15 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: BASH
Odpovědět | | Sbalit | Link | Blokovat | Admin
for f in *.log; do
    awk '{print $6}' "$f"
done
If you hold a Unix shell up to your ear, you can you hear the C.
petka avatar 23.10.2009 21:59 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: BASH
to co provede prikaz awk mi zpracuje promenou kterou zpracuju v cyklu if fi , jak tam mam nacpat celou podminku.
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
23.10.2009 23:08 Ash | skóre: 53
Rozbalit Rozbalit vše Re: BASH
to co provede prikaz awk mi zpracuje promenou kterou zpracuju v cyklu if fi does not compute, nevím co je "awk mi zpracuje proměnnou kterou zpracuju v cyklu". Pod pojmem "awk zpracuje proměnnou" si lze předstaivit awk '{print $6}' "$f" přičemž awk zpracovává proměnnou $f. Ok. Chcete výstup awk pak dostat do proměnné, abyste ji mohl zpracovat v té podmínce? promenna=$(awk '{print $6}' "$f") ale říkáte že už ji zpracováváte takže to asi umíte. V čem je tedy problém? Nemůžete sem dát ten svůj kus kódu který potřebujete vylepšit?
petka avatar 23.10.2009 23:55 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: BASH
Ano mate pravdu . spatne jsem to formuloval . Do promene . Protoze v cyklu podminek mam if [ $IN -lt 1000 ];then kdy $IN predstavuje promenou ze souboru . Ale jak jsem psal , souboru mam vic , ktere takhle potrebuju zpracovat .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
petka avatar 24.10.2009 01:16 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: BASH
Podle navodu promenna=$(awk '{print $6}' "$f") jsem o krok dale , jen s tim ze na vystupu se mi zobrazi jen posledni zpracovany soubor .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
24.10.2009 11:01 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: BASH
Tak sem hoďte celý ten kód co vám nefunguje, protože se mi zdá, že zatím popisujete něco jiného, než co vlastně chcete.
I am always ready to learn although I do not always like to be taught. (W. Churchill)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.