dd.mm.yyyy --> ddmmyyyy

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von electren, 14.06.2006.

  1. #1 electren, 14.06.2006
    electren

    electren Jungspund

    Dabei seit:
    03.06.2006
    Beiträge:
    21
    Zustimmungen:
    0
    ich krieg noch zu viel... :hilfe2:

    Ich hab Daten in Form von dd.mm.yyyy in na Datei - brauch sie aber in der Form ddmmyyyy - also ohne Punkte!!
    Jetzt wollt ich anfangen mit cut & paste was zu schreiben....
    aber:
    1. sind es 5 bis 10 Daten pro Zeile ...und
    2. hab ich dann ne Leerzeile.... anstatt Punkt.. ??

    Gibt es noch ne andere Möglichkeit die Punkte zu löschen?
    Komplettes ersetzen aller Punkte durch "nix" geht nicht...

    grüße
     
  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. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Einfaches "."-Löschen geht mit:

    Code:
    sed -ie 's!\.!!g' file
    
    Gruss, Xanti
     
  4. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Sollte nach der Option '-e' bei sed nicht ein Skript kommen?
    Ausserdem steht doch da, dass nicht einfach alle Punkte ersetzt werden koennen- oder bezieht sich das darauf, dass electren nur nicht wusste, wie das geht?

    Um etwas spezifischer zu sein, und nur Punkte aus Konstrukten dd.mm.yyyy zu loeschen, koennte folgendes gehen:
    Code:
    sed -i 's/\([0-9][0-9]\)\.\([0-9][0-9]\)\.\([0-9][0-9][0-9][0-9]\)/\1\2\3/g' filename
    
     
  5. #4 electren, 14.06.2006
    Zuletzt bearbeitet: 14.06.2006
    electren

    electren Jungspund

    Dabei seit:
    03.06.2006
    Beiträge:
    21
    Zustimmungen:
    0
    Hast recht rikola, eigentlich nicht alle Punkte..
    Aber hat mir trotzdem geholfen...
    Hab mir den Bereich wo die Daten stehen ausgeschnittem mit cut und da das von xanti angwendet und danach wieder die 3 Teile zusammengeführt...
    Ist natürlich sehr umständlich...

    Code:
    sed -i 's/\([0-9][0-9]\)\.\([0-9][0-9]\)\.\([0-9][0-9][0-9][0-9]\)/\1\2\3/g' filename
    
    Bei deinem blick ich nich ganz durch...
    es sucht sich die Teile wo das Format von nem Datum gegeben ist raus - und löscht da die Punkte??
    Das wäre natürlich der Wahn :-)))


    EDIT: Bei mir läuft alles nur mit -e - bei -i kommt immer illegale option
     
  6. #5 Xanti, 14.06.2006
    Zuletzt bearbeitet: 14.06.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Mein man sed (FreeBSD6.0) besagt

    Code:
         -e command
                 Append the editing commands specified by the command argument to
                 the list of commands.
    
         -f command_file
                 Append the editing commands found in the file command_file to the
                 list of commands.  The editing commands should each be listed on
                 a separate line.
    
    Ich kann mich dunkel daran erinnern, dass dies unter Linux auch so ist. Aber ich lass mich gerne korrigieren :)

    Dein Befehl ist natürlich genauer und besser geeignet. Da die Aufgabenbeschreibung für mich nicht eindeutig genug war, siegte die Faulheit und ich hab erstmal nur was spartanisches hingeworfen. Wenn's nicht ausreicht, kann man immer noch nachbessern ;)

    Gruss, Xanti

    edit: Ich sehe gerade, dass es mit und ohne -e geht. Ist halt 'ne Angewohnheit, die man nicht ablegt.
     
  7. #6 electren, 14.06.2006
    electren

    electren Jungspund

    Dabei seit:
    03.06.2006
    Beiträge:
    21
    Zustimmungen:
    0
    Das funktioniert super!!!!
    Vielen Dank..

    mit kleinen Schritte schreite ich nun so langsam zum Ziel.. :)) :))
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

dd.mm.yyyy --> ddmmyyyy