find Ausgabe in "Anführungszeichen"

Diskutiere find Ausgabe in "Anführungszeichen" im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo Unixboard-User, ich bin neu hier im Forum und habe ein Problem: Ich habe ein recht großes Script welches auch wunderbar funktioniert....

  1. #1 AltBen, 19.04.2017
    Zuletzt bearbeitet: 19.04.2017
    AltBen

    AltBen Grünschnabel

    Dabei seit:
    19.04.2017
    Beiträge:
    4
    Zustimmungen:
    0
    Hallo Unixboard-User,

    ich bin neu hier im Forum und habe ein Problem:

    Ich habe ein recht großes Script welches auch wunderbar funktioniert.
    Jedoch Habe ich ein Problem mit Ordnern, die ein Leerzeichen enthalten.

    Code:
    for OUTPUT in $(find . -maxdepth 1 -type d)
    Ich habe hier eine for-Schleife, welche mit allen Verzeichnissen im aktuellen Ordner arbeitet.

    Problem ist, dass, wenn ich ein Leerzeichen im Ordner habe, die for-Schleife das falsch interpretiert.

    Code:
    Ordner:
    4 drwxr-xr-x  2 root root 4096 Apr 19 08:49 test ordner
    
    Code:
    Script:
    find: "./test": Datei oder Verzeichnis nicht gefunden
    find: "ordner": Datei oder Verzeichnis nicht gefunden
    
    Wie bringe ich for dazu, an jede Ausgabe "Anführungzeichen" zu setzen?
    Bzw. Wie sorge ich dafür, dass das eben richtig interpretiert wird?

    Vielen Dank im Vorraus
    AltBen
     
  2. #2 hellfire, 19.04.2017
    hellfire

    hellfire Foren As

    Dabei seit:
    25.05.2016
    Beiträge:
    90
    Zustimmungen:
    11
    Mit read geht das besser.

    Code:
    while read OUTPUT ;do
       echo "$OUTPUT"
    done < <(find)
     
  3. AltBen

    AltBen Grünschnabel

    Dabei seit:
    19.04.2017
    Beiträge:
    4
    Zustimmungen:
    0
    Danke hellfire für die Anmerkung. Jedoch habe auch auch mit dieser Variante das gleiche Problem mit den Leerzeichen
     
  4. #4 hellfire, 19.04.2017
    hellfire

    hellfire Foren As

    Dabei seit:
    25.05.2016
    Beiträge:
    90
    Zustimmungen:
    11
    Ich habe das getestet mit einem Verzeichnis mit einem Leerzeichen. Bei mir funktioniert das. Ich vermute Du hast noch ein weiteres Quotingproblem in Deinem Script.
     
  5. AltBen

    AltBen Grünschnabel

    Dabei seit:
    19.04.2017
    Beiträge:
    4
    Zustimmungen:
    0
    Ok ich denke ich muss etwas genauer werden:

    Das Skript hat die Aufgabe, unsere aktuellen Ordner zu durchsuchen, um herauszufinden, welche Archiviert werden können und welche nicht. Deshalb soll das Script im Ausführungsordner durch die einzelnen Ordner gehen und diesen, falls eine Datei gefunden wird notieren. (Also es wird nur der Ordner notiert, nicht die File selbst.)

    Code:
    elif [[ $(find $OUTPUT -mtime +$LAST_CHANGE_DAYS -exec echo "Found:{}" ";") =~ "Found:" ]];
    
    Problem ist, dass der Output aus dem vorherigen Teil von find als 2 Ordner angesehen werden.
     
  6. #6 hellfire, 19.04.2017
    hellfire

    hellfire Foren As

    Dabei seit:
    25.05.2016
    Beiträge:
    90
    Zustimmungen:
    11
    Wie bereits geschrieben: Quoting problem

    Der find sollte so lauten:

    Code:
    find "$OUTPUT"
    Also die Variable OUTPUT mit Gänsefüsschen geschützt.
     
  7. AltBen

    AltBen Grünschnabel

    Dabei seit:
    19.04.2017
    Beiträge:
    4
    Zustimmungen:
    0
    Danke hellfire, jetzt klappt es!
     
Thema:

find Ausgabe in "Anführungszeichen"

Die Seite wird geladen...

find Ausgabe in "Anführungszeichen" - Ähnliche Themen

  1. find + 2 ausgaben

    find + 2 ausgaben: Hallo wie kann ich, wenn find 2 ausgaben liefert, also ---------- /home/datei1 /home/user/datei2 ---------- einen Skriptuser auswählen lassen,...
  2. ausgabe von find1 zu find2 übergeben

    ausgabe von find1 zu find2 übergeben: hallo, ich möchte in dir a dateien finden, die schon einige tage nicht mehr modifiziert wurden. habe ich diese gefunden, möchte ich in dir b...
  3. 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...
  4. 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...
  5. 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?