find weiterverarbeiten

Diskutiere find weiterverarbeiten im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Ola zusammen :) hoffe euch gehts gut?! ich habe hier ein kleines Gedankenproblem .. undzwar will ich alle Files eines bestimmten Dateityps...

  1. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    994
    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. #2 HeadCrash, 22.06.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    483
    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
     
  3. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    994
    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
     
  4. #4 HeadCrash, 22.06.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    483
    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?
     
  5. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    994
    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 !
     
  6. #6 floyd62, 22.06.2011
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    315
    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.
     
  7. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    994
    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. Dateien in Unix finden, die mehrere Strings beinhalten

    Dateien in Unix finden, die mehrere Strings beinhalten: Hallo liebe Leute, ich versuche über die Shell unter Unix alle Dateien ausfindig zu machen, die sowohl den SuchstringA als auch den SuchstringB...
  2. Erweiterbarer Wrapper für GNU find

    Erweiterbarer Wrapper für GNU find: Hallo zusammen, Da ich hier noch einen Account habe, wollte ich mal dieses Forum nutzen, um ganz dreist ein wenig Eigenwerbung zu machen :) Ich...
  3. find Ausgabe in "Anführungszeichen"

    find Ausgabe in "Anführungszeichen": Hallo Unixboard-User, ich bin neu hier im Forum und habe ein Problem: Ich habe ein recht großes Script welches auch wunderbar funktioniert....
  4. 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?
  5. 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...