Portál AbcLinuxu, 14. května 2025 02:26

Dotaz: trocha automatizace

29.1.2008 00:07 drtic_cz | skóre: 5 | blog: drtic
trocha automatizace
Přečteno: 552×
Odpovědět | Admin
Zdravim vsechny! Resim ted takovy ukol: Mam textovy soubor, ve kterem je par set slovicek, na kazdem radku jedno. Potrebuji nejak pomoci "for" direktivy (pripadne jinak) udelat, aby mi bash vzal prvni radek za promennou, vykonal s ni prikaz a pote vzal druhy radek za promennou, vykonal dalsi prikaz atd...az do konce.

takhle nejak to vypada staticky:
for promenna in `cat soubor_se_seznamem.txt`;
do muj prikaz s promennou $promenna ;
done
Nevim ale, a nikde nemuzu najit, jak to udelat, aby for loopovalo :)

Diky za rady
Arch Linux!
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.1.2008 00:19 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: trocha automatizace
Odpovědět | | Sbalit | Link | Blokovat | Admin
while read var
  echo $var
done < soubor_se_seznamem.txt
29.1.2008 00:24 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: trocha automatizace

Oprava:

while read var; do
  echo $var
done < soubor_se_seznamem.txt
29.1.2008 00:21 sweto | skóre: 20
Rozbalit Rozbalit vše Re: trocha automatizace
Odpovědět | | Sbalit | Link | Blokovat | Admin
while true ; do
  for promenna in `cat soubor_se_seznamem.txt` ; do
    echo $promenna
  done
done
29.1.2008 00:40 propanbutan
Rozbalit Rozbalit vše Re: trocha automatizace
kdyz pominu, ze to nikdy neskonci, tak bez
IFS=$'\n'
to shell rozdeli slovech, nicmene useless use of cat

while pres stdin je lepsi, ale uvnitr cyklu muzou (a delaji to) poustene programy ze stdin uzirat dalsi radky, takze je potreba to osetrit bud explicitnim redirectem (ssh nekam < /dev/null) nebo nejak jinak (ssh -n)
29.1.2008 00:42 propanbutan
Rozbalit Rozbalit vše Re: trocha automatizace
*PO slovech
29.1.2008 02:02 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: trocha automatizace

V takových případech by mohlo pomoci

while read var <&3; do
  echo "$var"
done 3<file
29.1.2008 08:28 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: trocha automatizace
Odpovědět | | Sbalit | Link | Blokovat | Admin
for i in `cat soubor_se_seznamem.txt`; do
   echo "$i"
done
29.1.2008 11:57 drtic_cz | skóre: 5 | blog: drtic
Rozbalit Rozbalit vše Re: trocha automatizace
Odpovědět | | Sbalit | Link | Blokovat | Admin
Diky moc za odpovedi..tak to zkousim takhle podle posledniho threadu:
for i in `cat nicky.txt`; do cat rawvypis.txt |grep -i "$i" > vypisy/"$i".txt; done
Melo vy to fungovat tak, ze v souboru nicky.txt je sloupec nazvu. Tyhle nazvy ja potrebuju vyfiltrovat ze souboru rawvypis.txt, coz je jenom velky vypis adresare a vysledek by mel byt, ze budu mit pro kazdy nazev soubor, ve kterem bude jen ta cast vypisu adresare, ktera ten nazev obsahuje. Takhle, jak to delam vyse, mi to vytvori spravne stovky souboru podle nazvu v nicky.txt, ale soubory jsou bohuzel prazdne :(. A zvlastni vec - ne ze by byla na zavadu, ale pred .txt je vzdycky otaznik... takhle nejak:
nazev1?.txt
nazev2?.txt
...atd
Jsem z toho jelen
Arch Linux!
29.1.2008 12:03 drtic_cz | skóre: 5 | blog: drtic
Rozbalit Rozbalit vše Re: trocha automatizace
while read var; do cat rawvypis.txt| grep -i $var > vypisy/$var.txt; done < nicky.txt
Takhle to samy :(
Arch Linux!
29.1.2008 13:08 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: trocha automatizace
Neobsahuje ten súbor s názvami konce riadku, ako sa používajú v DOS/Windows?
29.1.2008 16:30 drtic_cz | skóre: 5 | blog: drtic
Rozbalit Rozbalit vše Re: trocha automatizace
Bingo, dekuji... dos2unix to vyresilo. Netrklo me to, protoze cat i less i vim to zobrazili korektne i s windowsowyma koncema radku.
Arch Linux!
29.1.2008 13:24 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: trocha automatizace
for i in `cat vzor.txt`; do
	var1=`grep -i "$i" dirlist.txt`
	var2=${var1%/*}
	if [[ -n "$var2" ]]; then
		echo "$var2" >> vypisy_"${i}".txt
	fi
done

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.