Teil eines Dateinamens ausgeben

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von newsmaker, 24.04.2008.

  1. #1 newsmaker, 24.04.2008
    newsmaker

    newsmaker Grünschnabel

    Dabei seit:
    24.04.2008
    Beiträge:
    4
    Zustimmungen:
    0
    Ort:
    Breitengüßbach (Bamberg)
    Folgendes Problem:
    Ich möchte eine Zeichenkette aus meinem Dateinamen in einer Variable verwenden. Der Dateiname wird von einem Findcommando ausgegeben.

    Dateiliste:
    D0004XX0005F07L003B.pgs -> benötigt wird: F07L003B
    E0004XXF07L063A.pgs -> benötigt wird: F07L063A
    E0033CHF08P032X.pgs -> benötigt wird: F08P032X
    E0033CH.pgs -> keinen Wert ausgeben!

    Es sind immer die letzten 7 Zeichen vor der Dateierweiterung, beginnend mit F.... fehlt diese Kennung, soll auch keine ausgegeben werden.

    Irgendwie hab' ich da eine Denkblockade oder stell es mir komplizierter vor als es ist.
     
  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 Wolfgang, 24.04.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Frage:Welche Shell bzw. OS?

    Übrigens sind es in deinem Beispiel 8 Zeichen!
    Schnellschuß für Bash Ksh:
    Code:
    A=D0004XX0005F07L003B.pgs;
    ZIEL="$(echo $A|sed -e 's/.*\(.\{8\}\)\..*/\1/')";
    
    Gruß Wolfgang
     
  4. #3 newsmaker, 24.04.2008
    newsmaker

    newsmaker Grünschnabel

    Dabei seit:
    24.04.2008
    Beiträge:
    4
    Zustimmungen:
    0
    Ort:
    Breitengüßbach (Bamberg)
    Klar, 8 Zeichen du hast Recht.
    Das ganze läuft unter Red Hat Linux in der bash-shell. Aber dein Schnellschuss klappt super, danke. Genau dass was mir gefehlt hatte. Da brauch ich noch a weng bis ich immmer die passenden RegEx find.
     
  5. #4 Herr Nilsson, 24.04.2008
    Herr Nilsson

    Herr Nilsson Eroberer

    Dabei seit:
    21.03.2008
    Beiträge:
    62
    Zustimmungen:
    0
    Ort:
    Dortmund
    So geht's auch:
    Code:
    #!/bin/bash
    find . -name "*F???????.pgs" |
    while read file; do
        echo `expr $file : '.*\(........\).pgs'`
    done
    
    Ich kenne mich aber noch nicht so recht mit der Bash aus und glaube, daß mit dem `` und dem expr kann man irgendwie einfacher machen.
     
  6. #5 newsmaker, 24.04.2008
    newsmaker

    newsmaker Grünschnabel

    Dabei seit:
    24.04.2008
    Beiträge:
    4
    Zustimmungen:
    0
    Ort:
    Breitengüßbach (Bamberg)
    Der Vorgang ist bei mir folgender:

    Ich such nach einer Datei die mit dem Dateinamen "D0004XX0005" anfängt. Find gibt mir den komplettemn Namen aus mit dem Zusatz. Die Ausgabe wird abgefangen und nur die letzten 8 Zeichen abgefangen, fehlt der F... Zusatz soll nix ausgegeben werden. Das funktioniert mit der ersten Antwort von Wolfgang wunderbar.
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 Wolfgang, 24.04.2008
    Zuletzt bearbeitet: 24.04.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Das ist aber eine neue Option, ging aus deinem ersten Post nicht hervor.
    edit/ Sorry ging doch hervor, habe es echt überlesen.
    Mein Konstrukt prüft NICHT auf ein Vorkommen von F.

    Wenn das erste Zeichen der 8 verbleibenden Zeichen kein F ist soll es leer sein:
    Code:
    Ziel="$(echo $A|sed -e 's/.*\(.\{8\}\)\..*/\1/;/^F/!d')"
    
    Gruß Wolfgang
     
  9. dizzgo

    dizzgo Lernbereite Riesenratte

    Dabei seit:
    04.08.2005
    Beiträge:
    573
    Zustimmungen:
    0
    Ort:
    /ch/sg///
    So sollte es auch klappen:
    Code:
    Ziel="$(echo $A| [B]sed -n 's/.*\(F.\{7\}\)\..*/\1/p'[/B])"
    
    Gruss
    d22
     
Thema:

Teil eines Dateinamens ausgeben

Die Seite wird geladen...

Teil eines Dateinamens ausgeben - Ähnliche Themen

  1. Gezielten Teil eines Textblocks ändern

    Gezielten Teil eines Textblocks ändern: Hi, ich meine hier mal etwas ähnliches gesehen zu haben aber kann leider nix passendes finden. Es geht darum, die Mountoptionen eines bestimmten...
  2. Aufteilung eines zu großen Zipfile? Aber wie?

    Aufteilung eines zu großen Zipfile? Aber wie?: Hallo, ich kann folgendes Problem nicht lösen: :hilfe2: es sollen viele Dateien (bis zu 10 Gb) gezipped werden und anschließend die...
  3. Shell script - Zerteilen eines Textstrings

    Shell script - Zerteilen eines Textstrings: Hallo Liebe Shell Expreten! Ich bin seit 1 Woche dabei kleinere Shellscripte zu schreiben die mir das Leben auf der Arbeit etwas erleichtern...
  4. Es kommt Rauch aus dem Netzteil meines Computers

    Es kommt Rauch aus dem Netzteil meines Computers: Ein Kunde ruft bei Vobis an, weil sein Rechner fehlerhaft ist. Techniker: "Welches Problem tritt denn auf?" Kunde: "Es...
  5. IT-Systemadministrator/in in Teilzeit oder freiberuflich

    IT-Systemadministrator/in in Teilzeit oder freiberuflich: Wir suchen ab sofort in Teilzeit (20 Std./Woche) oder freiberuflich eine/n IT-Systemadministrator/in. Ihr Aufgabengebiet: Administration,...