Anzeige:
Ergebnis 1 bis 5 von 5

Thema: for Schleife

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.10.2005
    Beiträge
    15

    for Schleife

    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:
    Code:
    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:

    Code:
    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:

    Code:
    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
    Geändert von greywolve (10-10-2005 um 15:57 Uhr)

  2. #2
    Registrierter Benutzer Avatar von Giuly
    Registriert seit
    28.04.2003
    Ort
    HB-Nord
    Beiträge
    201
    Code:
    for SUB in $(seq 5) ; do subsection=$(cut -d" " -f${SUB} < datei.tmp); echo "<td><a href='${subsection}'>${subsection}</a>" >> datei.html;  done

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.10.2005
    Beiträge
    15
    DANKE ... hat super geklappt der Befehl ....

    riesigen Dank!

    Gruss

    Benni

  4. #4
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Nochmal als Begründung: du hast
    Code:
    '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:
    Code:
    `seq ...`
    wäre richtig gewesen. Alternativ kann man heutzutage (zumindest in der bash) aus lesbarkeitsgründen auch $() schreiben:
    Code:
    $(seq ...)

  5. #5
    Registrierter Benutzer
    Registriert seit
    20.10.2005
    Ort
    MATRIX
    Beiträge
    91

    Wink Wow

    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
    Ich will ja die Welt verbessern, aber Gott gibt mir den Quellcode nicht. Aber die Grafik hat er geil hinbekommen!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •