find weiterverarbeiten

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von juan_, 22.06.2011.

  1. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    Ola zusammen :)
    hoffe euch gehts gut?!


    ich habe hier ein kleines Gedankenproblem ..
    undzwar will ich alle Files eines bestimmten Dateityps (zB mal txt-Files) verarbeiten:
    Nun bekomme ich zB so eine Ausgabe:
    \pfad\zum\file\1234.txt (Filename beliebig)

    Ich brauche jetzt zum einen den Pfad und den Dateinamen in einer separaten Variable und muss danach ein anderes Programm aufrufen.

    geht das immer noch mit find (-exec) oder lieber per for-Schleife?
    Scheint mir nicht allzu komplex, aber ich kriegs dennoch nicht hin ;(

    Kann mir jemand helfen?

    Danke!
     
  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 HeadCrash, 22.06.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Hallo,

    Code:
    find . -name *.txt -exec mein_script.sh '{}' \;
    [CODE]
    
    mein_script.sh
    [CODE]
    verzeichnis=`dirname $1`
    datei=`basename $1`
    
    noch_ein_script.sh
    # oder was auch immer
    
    Keine Ahnung ob mehrere execs am Stück gehen, damit steh ich immer wieder auf Kriegsfuß ;)

    mfg
    HeadCrash
     
  4. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    Hi,
    Danke soweit für dein Post.
    Das Programm, was ich aber aufrufe, ist kein Shellscript, sodass ich dort die Variablen definieren kann. Sie sollten schon im Find-Statement erzeugt werden!


    Danke
     
  5. #4 HeadCrash, 22.06.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Deshalb rufen wir ja das "mein_script.sh" als Wrapper auf. Machen aus dem Dateipfad und Namen Variablen und rufen dann auf, was immer wir brauchen sei das jetzt "noch_ein_script.sh" oder "grosses_boesses_program.bin".

    Oder brauchst du alle Ergebnisse am Stück in deinem Program?
     
  6. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    achso.
    am Stück nicht.
    Ich will auf jede gefundene Textdatei dieses Programm aufrufen.

    Mir wäre es natürlich lieber, wenn ich ohne den Umweg eines weiteren Skripts die execs aufrufen kann.

    Aber dank schonmal !
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 floyd62, 22.06.2011
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Hi,

    wenn das Skript/Programm, das du für jede Datei ausführen willst, jeweils nur den Pfad und die Datei als Argumente erwartet, kannst du das Ganze wahrscheinlich am einfachsten mit "xargs" erledigen:
    Code:
    find . -name \*.txt -printf "%h %f\n" |
    xargs -n 2 $process
    
    Alternativ geht das natürlich mit einer kleinen while-Loop:
    Code:
    find . -name \*.txt -printf "%h %f\n" |
    while read DIR FILE; do
            $process "$DIR" "$FILE" ...
    done
    
    Gruss, A.
     
  9. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    danke!
    hab mich für die Schleife entschieden :)

    Schönen Tag allen !
     
Thema:

find weiterverarbeiten

Die Seite wird geladen...

find weiterverarbeiten - Ähnliche Themen

  1. Wo befindet sich der Autostartordner?

    Wo befindet sich der Autostartordner?: Hallo ich habe CentOS 7.2.15.11 und Desktopumgebung mate , wo befindet sich der Autostartordner?
  2. Fragen zu find

    Fragen zu find: Hallo an alle, Ich bin ziemlich neu in der Linux Welt und habe paar frage Ich soll alle Datein im system finden die vor weniger als drei Tagen...
  3. Rechner im lokalen Netzwerk finden

    Rechner im lokalen Netzwerk finden: Hallo, in meiner Firma habe ich zwei Linux-Rechner, die ganz modern mit dem Internet verbunden sind. Jetzt möchte ich von dem einem Rechner...
  4. BSI-Audit findet keine akuten Probleme in OpenSSL

    BSI-Audit findet keine akuten Probleme in OpenSSL: Das Bundesamt für Sicherheit in der Informationstechnik hat OpenSSL auf seine Sicherheit untersuchen lassen. Die Analyse zeigt vor allem, dass die...
  5. BSI-Audit findet keine akute Probleme in OpenSSL

    BSI-Audit findet keine akute Probleme in OpenSSL: Das Bundesamt für Sicherheit in der Informationstechnik hat OpenSSL auf seine Sicherheit untersuchen lassen. Die Analyse zeigt vor allem, dass die...