Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Letzten 3 Buchstaben ändern...

  1. #1
    Flitschbirne
    Gast

    Letzten 3 Buchstaben ändern...

    Hallo.

    Ich konvertiere gerade über 150 XML-Dateien über den Command

    Code:
    rrdtool restore datei.xml datei.rrd
    in RRD-Dateien um.

    Dazu hab ich mir mal folgendes Skript leihenweise zusammen gefrickelt:

    Code:
    #!/bin/bash
    for i in `ls`; do
    rrdtool restore $i $i.rrd
    done
    Das Problem ist, dass er die Dateien zwar alle umwandelt diese dann aber die Endung ".xml.rrd" haben.

    Mit welchem Command kann man aus allen Dateien das ".xml" entfernen?

    Ich find bei Google nur Kommentare zum Ändern "innerhalb" von Dateien. Aber nicht die Dateien selbst. Oder geht das irgendwie mit "mv"?

    Gruß,
    Flitschbirne

  2. #2
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Zum Beispiel so:
    Code:
    #!/bin/bash
    for i in `ls`; do
    # sollte das .xml abschneiden.
    # Allerdings nur wenn die Dateinamen keinen . enthalten
    name=$(echo $i | cut -d'.' -f1)
    rrdtool restore $i $name.rrd
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  3. #3
    Flitschbirne
    Gast
    Super. Dank dir :-)

    Nur damit ich es verstehe:

    Code:
    cut -d'.' -f1
    nimmt den Punkt als Delimiter und -f1 schneidet dann das xml danach ab???

    Flitschbirne

  4. #4
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Code:
    cut -d'.' -f1
    -d'.' -- wie du gesagt hast, Punkt als Delimiter,
    -f1 -- gibt das erste Feld zurück (falls der Punkt vor xml der 1. ist -> ganzer Dateiname). 2 Beispiele: name.xml --> name; mit.punkt.xml --> mit
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  5. #5
    Registrierter Benutzer
    Registriert seit
    05.09.2002
    Ort
    Neuhausen
    Beiträge
    320
    Bash kann das genau so gut, aber irgendwie hat sich das noch nicht herumgesprochen...
    Code:
    #!/bin/bash
    for i in *.xml; do
      rrdtool restore $i ${i%%.xml}.rrd
    done
    Gruss, Andy

  6. #6
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    nett, danke nehm ich gerade in mein Bash-Schnipsel-Dokument auf
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  7. #7
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Und hier noch einer:
    Code:
    for i in *.xml; do
       rrdtool restore $i `basename $i .xml`.rrd
     done
    Jan

Lesezeichen

Berechtigungen

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