welche Shell/ Kommandos für Zeichenkettenopreationen?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Gayson, 13.08.2006.

  1. Gayson

    Gayson Jungspund

    Dabei seit:
    12.08.2006
    Beiträge:
    10
    Zustimmungen:
    0
    Hallo!

    Ich möchte ein kleines Skript schreiben, welches aus einem bestimmten Verzeichnis das Unterverzeichnis mit dem neuesten Datum (bei mir sind Ordner nach dem Prinzip "YEAR-MONTH-DAY_HOUR~MINUTE" benannt) herausfindet.
    Gibt es in Unix irgendwelche Kommandos, die sowas können? Oder wie könnte ich das am Besten realisieren

    Danke für eure Anregungen!
    Liebe Grüße,
    Kai

    P.S.:
    Soweit bin ich in Prinzip schon (Bourne Shell):
    Code:
    $verzeichnis
    for i in `ls`
    do
        if [ -d $i ] # falls $i ein Verzeichnis
        then
            if [ $verzeichnis ] # falls $verzeichnis schon gesetzt
            then
                 # hier muss jetzt überprüft werden, ob
                 # $i neuer ist als $verzeichnis
            else
                $verzeichnis=$i
            fi
        fi
    done 
     
  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
    Warum selber sortieren, wenn dies ls macht? Ich würde für Dein Problem find preferieren, da man damit direkt auf Verzeichnisse testen kann:

    Code:
    find -s . -type d -maxdepth 1 | tail -1
    
    Gruss, Xanti
     
  4. Gayson

    Gayson Jungspund

    Dabei seit:
    12.08.2006
    Beiträge:
    10
    Zustimmungen:
    0
    Danke für deine schnelle Antwort!
    Irgendwie kennt er den Schalter -s für find bei mir nicht... Und ohne -s gibt er mir immer ./ÄltestesVerzeichnis aus.

    Meinst du eigentlich, das find könnte meine Schleife ersetzen? Oder sollte ich find als if-Abfrage nehmen?

    Achso, hast du eine Übersicht für Zeichenkettenoperationen in der Bourne-Shell? Ich würde gerne z.B. gerne ein Verzeichnis nach dem Typ "YEAR-MONTH-DAY_HOUR~MINUTE" nach dem aktuellen Datum/ Uhrzeit dynamisch zusammenbauen, also sowas wie (Pseudocode)
    Code:
    $neuesverzeichnis = time %Y "-" time %m "-" time %Y "-" time %d "_" ...
     
  5. #4 Xanti, 13.08.2006
    Zuletzt bearbeitet: 13.08.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Da musst Du mal in "man find" schauen, wie man find zum sortieren bringt. Zur Not tuts auch ein "find ... | sort". Ich habe anfänglich "head -1" benutzt, es anschliessend in "tail -1" geändert. Nicht dass Du das "head -1" genommen hast und deswegen das ältestete Verzeichnis bekommst.

    Es ersetzt komplett Deine for-Schleife:

    Code:
    find . -type d -maxdepth 1 | tail -1 | xargs dosomething
    
    Bezüglich xargs musst Du Dir mal die man-Page anschauen, da sich meine FreeBSD-Version höchstwahrscheinlich von Deiner unterscheidet.
    Für komplexe Arbeiten geht auch

    Code:
    for dir in $(find . -type d -maxdepth 1 | tail -1); do
      echo $dir
      mv $dir ...
    done
    
    Da ich persönlich die bash nutze, kann ich Dir nur Tipps für die bash geben, vielleicht sind sie auch in der bourne Shell gültig. Deinen Pseudocode würde dann so aussehen:

    Code:
    neuesverzeichnis="$(time %Y) - $(time %m) - $(time %Y) - $(time %d)..." 
    
    Wahrscheinlich sieht die Befehlssubstitution anders aus, also statt $(..) womöglich `..`. Obiges lässt sich auch einfach durch

    Code:
    neuesverzeichnis="$(date "+%Y - %m - %Y - %d")"
    
    erreichen.

    Gruss, Xanti
     
  6. Anzeige

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

welche Shell/ Kommandos für Zeichenkettenopreationen?

Die Seite wird geladen...

welche Shell/ Kommandos für Zeichenkettenopreationen? - Ähnliche Themen

  1. Welche Paketquellen sind empfohlen? -CentOS 7.2.15.11

    Welche Paketquellen sind empfohlen? -CentOS 7.2.15.11: Hallo liebes Forum. Es scheint mir wie eine plumpe Anfängerfrage, jedoch habe ich zu dem Thema nichts sinnvolles gefunden. Ich habe CentOS...
  2. Anfänger Frage: Welchen Standard wählen

    Anfänger Frage: Welchen Standard wählen: Hallo, früher wußte ich nie wie ich anfangen muß. Heute weiß ich einfach anfangen und mir alles selbst beibringen. Was ich mich aber noch...
  3. Welche Distri für Programming from the Ground Up

    Welche Distri für Programming from the Ground Up: Hallo! Ich möchter gerne das Buch Programming from the Ground Up durcharbeiten. savannah_nongnu_org/projects/pgubook/ Da geht es um Programmieren...
  4. PCI-Soundkarte welche mit Debian Wheezy Kernel 3.16 läuft?

    PCI-Soundkarte welche mit Debian Wheezy Kernel 3.16 läuft?: Hallo zusammen Kann mir jemand eine Soundkarte vorschlagen, welche mit dem Wheezy-backports-Kernel v3.16.x läuft? Dabei sollte die Karte im...
  5. welche DVB-S2 Karte für Linux ?

    welche DVB-S2 Karte für Linux ?: Hallo Welche Video-S2 Karte würdet ihr aus eigener Erfahrung für Linux empfehlen ? OS sollte Debian-Sid sein, kann aber auch Archliux,...