PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : for Schleife



greywolve
10-10-2005, 15:53
Hi,

ich bekomme meine for Schleife einfach nicht hin...

und zwar habe ich eine Variable $COUNT

diese gibt mir an wievie Spalten bzw Wörter in einer Datei stehen

Dateibeispiel:

Hallo ich bin der Bert

COUNT=$(awk '{printf NF}' datei.tmp)
hier: 5 --> $COUNT=5

so nun will ich eine Schleife erstellen, die mir diese 5 Wörter in eine Variable haut... und einzeln in eine html-Tabelle legt.

hier mein Ansatz:


for SUB in 'seq $COUNT' ; do
subsection=$(awk '{printf $"$SUB"}' datei.tmp)
echo <td><a href="$subsection">$subsection</a> >> datei.html
done


Danach sollte eine Tabelle entstehen die in Etwa so aussehen sollte:


Hallo | hier | ist | der | Bert

Der | soll das Zellenende sein ^^ (weiss nicht ob hier html geht)

irgendwie funktioniert das nicht, da ich die Zahl aus $SUB nicht in awk bekomme... ich verzweifle... und hoffe hier hat wer ne idee

DANKE im vorraus

grüsse

Benni

Giuly
10-10-2005, 17:30
for SUB in $(seq 5) ; do subsection=$(cut -d" " -f${SUB} < datei.tmp); echo "<td><a href='${subsection}'>${subsection}</a>" >> datei.html; done

greywolve
11-10-2005, 08:55
DANKE ... hat super geklappt der Befehl ....

riesigen Dank!

Gruss

Benni

Joghurt
11-10-2005, 14:04
Nochmal als Begründung: du hast
'seq ...' geschrieben. seq ist ein Builtin Befehl, der eine Nummernfolge ausgibt. Du willst also die Ausgabe dieses Programmes an der Stelle eingefügt haben, dafür nutzt man backticks, nicht die normalen ticks:
`seq ...` wäre richtig gewesen. Alternativ kann man heutzutage (zumindest in der bash) aus lesbarkeitsgründen auch $() schreiben:
$(seq ...)

Mehlwurm
20-10-2005, 15:03
in der "Aufgabe" steht
i c h b i n
und in der "Lösung"
h i e r i s t



SMILE

aber gut, dass es klappt