Portál AbcLinuxu, 11. května 2025 10:29

Dotaz: načtení dat ze souboru

13.3.2008 21:44 onas2
načtení dat ze souboru
Přečteno: 1060×
Odpovědět | Admin
Dobrý večer,chtěl bych se zeptat, jak by vypadal kod programu v BASH. Kdybych potřeboval po zadání do příkazové řádky např: ./skript.sh s parametrem -p aby mi ze souboru skript.txt ve kterém by byl obsah ve tvaru:

skript1: neco 1 skript2: neco 2 skript3: neco 3 skript4: neco 4 skript5: neco 5 skript6: neco 6

vytvořil v adresáři jednotlivé soubory, ktreré by se jmenovali skrip1 až skript2 podle obsahu v textovém souboru. Předem moc děkuji.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.3.2008 22:22 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: načtení dat ze souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Snad jsem to správně pochopil, pokud ne, tak následující script ignorujte :-)
for i in `cat "$1"`; do
	touch "$i"
done
$1 přebírá první parametr příkazové řádky, takže případný script by se spouštěl následovně:
./script.sh script.txt
13.3.2008 22:30 onas2
Rozbalit Rozbalit vše Re: načtení dat ze souboru
no potřevoboval bych to ./skript.sh -p aby mi to provedlo ty soubory dle textu v tom textáku. To jak jste mi poslal jsem zkoušel ale po zadání mi to píše

bash: ./skript.sh: bin/bash: bad interpreter: není souborem ani adresářem
13.3.2008 22:37 onas2
Rozbalit Rozbalit vše Re: načtení dat ze souboru
přitom soubor script.txt a ji script.sh mám ve stejném adresáři. jestli by to s tím textákem pomohlo tak to muže byt ve tvaru pod sebou ne vedle sebe
 skript1: neco 1
 skript2: neco 2
 skript3: neco 3
 skript4: neco 4
 skript5: neco 5
 skript6: neco 6 
13.3.2008 23:57 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: načtení dat ze souboru
Nechýba tam znak / ? (teda je tam #!/bin/bash ?)
14.3.2008 08:07 onas2
Rozbalit Rozbalit vše Re: načtení dat ze souboru
tak chyba byla v tom lomítku :-). Už to jede, jen mi to udělá soubory ze všech slov a já bych potřeboval jen skript1 až skript6. neví jak na to?díky
14.3.2008 10:08 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: načtení dat ze souboru
#!/bin/bash

VAR=`cat "$1" | gawk -F: '{ print $1 }'`

for i in `echo "$VAR"`; do
	touch "$i"
done
14.3.2008 10:12 onas2
Rozbalit Rozbalit vše Re: načtení dat ze souboru
děkuju, ale já přávě nemůžu použít funkci awk, v zadání co máme je to zakázaný :-(
14.3.2008 10:16 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: načtení dat ze souboru
:-)
VAR=`cat "$1" | cut -d : -f 1`
1.4.2008 19:03 Frantisek Groulik
Rozbalit Rozbalit vše Re: načtení dat ze souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
a poradite, prosim i mne... mam napsat skript, ktery rozesle na adresy vypsane v souboru text emailu ulozeny vd ruhem souboru... vezme z prvniho parametru jmeno souboru, ve kterem je na kazde radce jedna e-mailova adresa...vezme z druheho parametru jmeno souboru s textem meilu...na kazdou adresu zvlast odesle text emailu... Vzor prvniho souboru:

a@b.c

d@e.f

vzor druheho:

Subject: predmet imejlu

text text text text

2.4.2008 08:15 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: načtení dat ze souboru
#!/usr/bin/env bash
# set -x

SUBJECT=`gawk -F ": " 'NR==1 { print $2 }' "$2"`
BODY=$[`wc -l < "$2"` - 1]

cat "$1" |
while read MAIL; do
	mail -s "$SUBJECT" "$MAIL" <<-EOM
	`tail --lines="$BODY" "$2"`
	EOM
done
První poziční parametr je soubor s maily a druhý je soubor s obsahem mailu. Soubor s maily musí při tomto řešení obsahovat na konci jeden prázdný řádek.
2.4.2008 10:30 ikarlos | skóre: 8
Rozbalit Rozbalit vše načtení dat ze souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Aha, tak ABC LINUXU slouží k tomu, aby se tu řešily domácí úkoly chudáků, kteří jsou líní si přečíst manuál? Doufám, že učitele napadne se sem podívat a pak studentíka pošle tam, kam patří...

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.