Dateinamen in variable ausgeben.

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von ZSchneidi, 18.08.2008.

  1. #1 ZSchneidi, 18.08.2008
    ZSchneidi

    ZSchneidi Grünschnabel

    Dabei seit:
    18.08.2008
    Beiträge:
    7
    Zustimmungen:
    0
    Hallo Leute, bin brandneu hier bei euch.
    Hab vor 2 Wochen meine Ausbildung zum Anwendungsentwickler angefangen.
    Nur so als info am Rande ; )

    Ich habe jetz mit awk shell script angefangen, sind übrigens meine ersten gehversuche mit derartigem. Dementsprechend bin ich noch nicht so fitt.

    Ich bin momentan dabei ein script zu schreiben, das mir eine Log datei liest, formatiert und danach sortierte werte im HTML Format auswirft. Soweit bin ich schon ganz zufrieden damit.

    PROBLEM:

    Ich wollte jetzt in der Überschrift den Dateinamen angeben, aber nicht als vorgegebenen Text, sondern als Variable. Damit ich das script, welches ich als datei anlege (nicht in Kommandozeile), auch auf weitere Log's anwenden kann.

    Wie kann ich mir jetz den Namen der Datei, die ich bearbeite ich eine Variable ausgeben lassen, um diese in der Überschrift mit auszugeben ?

    Wäre schön, wenn ihr mir nen Tip geben könntet und denkt dran ich bin noch kein scriptvirtuose ; )

    Dank euch.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 dosenfleisch, 18.08.2008
    dosenfleisch

    dosenfleisch Foren As

    Dabei seit:
    29.03.2007
    Beiträge:
    75
    Zustimmungen:
    0
    wie kommt denn dein script an den namen der zu bearbeitenden datei?
    wird der name bei script-start übergeben?
    dann vielleicht:
    Code:
    echo "Überschrift = Dateiname = "$1""
    
     
  4. #3 ZSchneidi, 19.08.2008
    ZSchneidi

    ZSchneidi Grünschnabel

    Dabei seit:
    18.08.2008
    Beiträge:
    7
    Zustimmungen:
    0
    Hey, gute Frage, sorry hatte vergessen, das noch zu erwähnen.
    Derzeit übergebe ich die Zieldatei immer noch in der Kommandozeile.

    Da ich noch nicht weiß, wie ich das ins script direkt mit einbau.
    Wäre aber dankbar für einen Tipp, wie ich das machen könnt.
     
  5. #4 saeckereier, 19.08.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Sorry zur Originalfrage kann ich rel. wenig beitragen. Aber für sowas habe ich früher immer PERL benutzt. (PERL ist eine richtige Programmiersprache und die Abkürzung steht für Practical Extraction and Report Language (zweckmäßige Extraktions- und Berichtssprache) oder Pathologically Eclectic Rubbish Lister (krankhaft stilmischender Blödsinnsauflister))

    (Ausgeschriebene Abkürzung von Wikipedia)
     
  6. #5 ZSchneidi, 19.08.2008
    ZSchneidi

    ZSchneidi Grünschnabel

    Dabei seit:
    18.08.2008
    Beiträge:
    7
    Zustimmungen:
    0
    Ja Perl wollt ich nur noch nicht weiter angehen, wollte mich erstmal nur mit awk beschäftigen. weiteres kommt bei bedarf, bisher hat auch alles soweit geklappt. Aber das wäre jetz noch ne sehr interessante Sache, damit ich damit erstmal weiter komm.
     
  7. #6 JBR, 19.08.2008
    Zuletzt bearbeitet: 20.08.2008
    JBR

    JBR Fichtenschonung

    Dabei seit:
    18.03.2007
    Beiträge:
    561
    Zustimmungen:
    0
    Ort:
    Nolop
    Frage nicht verstanden ....
     
  8. #7 ZSchneidi, 19.08.2008
    ZSchneidi

    ZSchneidi Grünschnabel

    Dabei seit:
    18.08.2008
    Beiträge:
    7
    Zustimmungen:
    0
    hmm die Frage könntest du verstanden haben, ich komm nur mit der Antwort nicht ganz klar. Ich habs mal durchprobiert.

    Mit dem sh spuckt der mir line für line nur "command not found".

    Ich kann jetz mit der Art das schript aufzurufen nicht klar.
    Ich mach es sonst via:

    awk -f "script.name" "Zieldatei"

    Wie würde das in der Kommandozeile aussehen, wenn ich es mach wie du? Meine shell kann damit nicht viel anfangen.
     
  9. #8 ZSchneidi, 20.08.2008
    Zuletzt bearbeitet: 20.08.2008
    ZSchneidi

    ZSchneidi Grünschnabel

    Dabei seit:
    18.08.2008
    Beiträge:
    7
    Zustimmungen:
    0
    Mir wurde noch der Tip gegeben, es mit "argv" zu versuchen. könntet ihr mir damit helfen ?
    Das hab ich auch noch nicht so recht drauf.
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Ohh oh, schon der dritte Post in Folge.. nicht schlagen...

    Ich denke ich habs jetz soweit.
    Falls es interessiert.

    Code:
    BEGIN {
            for (i = 0; i < ARGC; i++)
            datei=ARGV[1]
    
            print datei
            print "Der dateiname lautet " datei".";
    
    }
    Der auswurf entspricht dann dem, was ich wollte, dass ich den Dateinamen ins script integriert hab, muss dabei allerdings an fester stelle in der Kommandozeile stehen.

    Wenn euch da jetz was stört, dann sagt es mir bitten, ich lerne immernoch.
    Und wenn ich was einfacher oder richtiger machen könnte, lasst es mich wissen.
     
  10. #9 Wolfgang, 20.08.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Irgendwie kann ich dir wohl nicht ganz folgen.

    Wozu die Zählschleife?
    Bei 10 Dateien, gibst du hier 10 x das gleiche Array-Element (1) aus.:think:

    Als Denkanstoß mal einen kleinen Auszug aus man awk:
    Built-in Variables
    Ich hoffe das ist das was du suchst.

    Gruß Wolfgang
     
  11. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  12. #10 ZSchneidi, 20.08.2008
    ZSchneidi

    ZSchneidi Grünschnabel

    Dabei seit:
    18.08.2008
    Beiträge:
    7
    Zustimmungen:
    0
    Hmm, ich hielt das erstmal für ok, da es zumindest genau das ausgeworfen hat, was ich wollte.

    Inwiefern, wäre das jetz schlecht, wenn ich 10 Datein im Ziel hab und er mir 10 mal dieses Element ausgibt ? Könnte das zu Problemen führen ?

    Du kennst dich sicher besser aus damit, ich werd mich morgen mal an die manpage setzen und deinen Tip mal durchgehen.

    Dank dir erstmal.
     
  13. #11 ZSchneidi, 21.08.2008
    ZSchneidi

    ZSchneidi Grünschnabel

    Dabei seit:
    18.08.2008
    Beiträge:
    7
    Zustimmungen:
    0
    Hmm ok, also soweit ich glaube, das jetz zu verstehen, ist FILENAME eine Variable, die den "Dateinamen" bereits enthält, sobald die Zieldatei eingelesen wird.

    Nur ich bekomm es nicht hin, mir den Inhalt von FILENAME ausgeben zu lassen.

    Könntet ihr mir ein Beispiel geben, wie der Syntax auszusehen hat ?
     
Thema:

Dateinamen in variable ausgeben.

Die Seite wird geladen...

Dateinamen in variable ausgeben. - Ähnliche Themen

  1. variable in einem script auf Gültigkeit als Dateinamen testen

    variable in einem script auf Gültigkeit als Dateinamen testen: Hallo, da ich in meinem Script ein Argument als Teil des Namens für die Ausgabedatei verwende, bekomme ich gerne mal (weil ich die...
  2. dateinamen ohne endung in variable

    dateinamen ohne endung in variable: Hallo zusammen, folgende Konstellation: VAR1=Dateiname.txt VAR2=Dateiname VAR3=txt Wie kann ich VAR2 und VAR3 füllen, wenn ich nicht...
  3. Dateinamen mit Variablen ergänzen

    Dateinamen mit Variablen ergänzen: Hallo, ich möchte per script mit rsync oder scp jeden tag per cronjob einen ordner und/oder einzelne Dateien sichern. Der Name soll um eine...
  4. [FRAGE] Dateinamen normalisieren während sie in einer "for" Schleife sind

    [FRAGE] Dateinamen normalisieren während sie in einer "for" Schleife sind: Moin Gemeinde, ich habe ein Skript welches Emails abholt und weiterverarbeitet, manche müssen ausgedruckt werden. Nun hat sich herausgestellt...
  5. Einfaches Shellscript - dateinamen ändern

    Einfaches Shellscript - dateinamen ändern: Hey, kann mir jemand vielleicht bei diesem miniscript helfen? ich habe dateien die folgendermaßen aussehen MM-DD-YY-dateiname und...