Dateinamen kürzen/ändern

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von JCB, 27.02.2006.

  1. JCB

    JCB Mitglied

    Dabei seit:
    27.02.2006
    Beiträge:
    42
    Zustimmungen:
    0
    Hallo,

    kann mir jemand bei einer Zeile helfen? Ich versuche folgendes:
    Lösche die ersten 8 Zeichen ersetze die letzten 3 Zeichen in txt.

    Leider muss ich mit den Zahlen hantieren, da die ersten 8 und die letzen 3 immer unterschiedlich Zahlen und Buchstaben enthalten.

    ls dbgerman.* |while read datei; do #alle Dateien fangen mit dbgerman. an
    temp=sed -e 's/.\{4\}$//'

    mv $datei $temp .txt
    done


    also die letzten 3 Buchstaben hab ich schon mal, fehlt nur noch der Anfang. Irgendeinen Tip??

    Danke,

    schon im voraus.

    JCB
     
  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 Xanti, 27.02.2006
    Zuletzt bearbeitet: 27.02.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Code:
    sed -e 's/^.\{8\}//'
    sed -e 's/.\{3\}$/txt/'
    
    oder in einer Zeile

    Code:
    sed -e 's/^.\{8\}//' -e 's/.\{3\}$/txt/'
    
    Gruss, Phorus
     
  4. JCB

    JCB Mitglied

    Dabei seit:
    27.02.2006
    Beiträge:
    42
    Zustimmungen:
    0
    Danke Phorus. Das ging ja schnell. Ich werd das gleich mal einbauen.

    Reprt kommt,

    Danke,

    JCB
     
  5. #4 Wolfgang, 27.02.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Oder so:
    sed -e 's/^.\{8\}\(.*\).\{4\}$/\1_neu/'

    Gruß Wolfgang
     
  6. JCB

    JCB Mitglied

    Dabei seit:
    27.02.2006
    Beiträge:
    42
    Zustimmungen:
    0
    Sorry, ich muss da noch mal bohren. Wieso geht das nicht??
    Code:
    #!/bin/sh
    
    #Verzeichnis wechseln
    cd /pub/dnb/ftp/gb/fromgb
    
    #jede datei umbenennen und packen
    
    
    ls dbgerman.* | while read datei; do
    temp="`sed -e 's/^.\{17\}\(.*\).\{4\}$/\1.txt/'`"
    
    mv "$datei" "$temp"
    done
    nur die erste Datei wird umbenannt, und dann bekommt sie alle Namen der Dateien getrennt mit einem Zeilenvorschub??

    Ich hab die Zeile nochmal angepasst 17 Zeichen müssen gelöscht werden. Hab mal man sed aufgerufen, aber ganz schlau werd ich aus der Zeile nicht..

    Wenn ihr noch einen Tipp habt??

    Danke
     
  7. #6 Wolfgang, 27.02.2006
    Zuletzt bearbeitet: 27.02.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Vorschlag:
    Ändere mal das hier:
    Code:
    ls -A dbgerman.* | while read datei; do
    temp="$(echo $datei|sed -e 's/^.\{17\}\(.*\).\{4\}$/\1.txt/')"
    ...
    
    Zum sed:
    /^.\{17\} --am Anfang 17 Zeichen
    \(.*\) -- gefolgt von beliebig vielen Zeichen (In \1 Speichern)
    .\{4\}$/ --vier Zeichen am Ende
    /\1 --- Ersetze durch das was in Klammern steht =rot
    txt/ und txt
    Das wird in temp gespeichert.

    Gruß Wolfgang
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 neutrino1, 01.03.2006
    neutrino1

    neutrino1 Mitglied

    Dabei seit:
    03.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Hi!

    Probier doch das, ist schön übersichtlich :)

    for R in dbgerman*;do RT=${R:8};mv $R ${RT%???}txt;done
     
  10. JCB

    JCB Mitglied

    Dabei seit:
    27.02.2006
    Beiträge:
    42
    Zustimmungen:
    0
    Hallo,

    vielen dank für eure Hilfe. Hat beides geklappt. Ich habe dann doch entschieden daß M$Access, nicht die ganze Arbeit macht sonder lieber Linux alles in eine Datei zusammenfasst und dann Access alles in eins reinlutscht.

    Danke für eure Hilfe.

    Spitzen Forum hier :)

    JCB
     
Thema: Dateinamen kürzen/ändern
Besucher kamen mit folgenden Suchen
  1. sed dateinamen ändern

    ,
  2. linux dateinamen abschneiden

    ,
  3. unix dateinamen bearbeiten

    ,
  4. dateiname ändern bash
Die Seite wird geladen...

Dateinamen kürzen/ändern - Ähnliche Themen

  1. [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...
  2. 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...
  3. Wie verschiedene Pattern in diversen Dateinamen finden und ersetzen?

    Wie verschiedene Pattern in diversen Dateinamen finden und ersetzen?: Hi Leute. Ich habe ein kleines Problem. Ich möchte mittels Bash nach bestimmten pattern in Dateinamen suchen und diese durch "nichts"...
  4. Wie finde ich Leerzeichen im dateinamen

    Wie finde ich Leerzeichen im dateinamen: Hallo, ich habe ein script mit einer Schleife über alle Dateien in einem Verzeichnis. #!/bin/sh for i in `ls *` do echo $i...
  5. Zahl innerhalb eines Dateinamens auslesen

    Zahl innerhalb eines Dateinamens auslesen: Hallo, ich habe eine große Anzahl an Dateien mit konstantem Dateinamen + einer Zahl, allerdings sind sie nicht fortlaufend nummeriert, also...