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. 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 hellfire, 19.04.2017
    hellfire

    hellfire Foren As

    Dabei seit:
    25.05.2016
    Beiträge:
    76
    Zustimmungen:
    10
    Mit read geht das besser.

    Code:
    while read OUTPUT ;do
       echo "$OUTPUT"
    done < <(find)
     
  4. 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
     
  5. #4 hellfire, 19.04.2017
    hellfire

    hellfire Foren As

    Dabei seit:
    25.05.2016
    Beiträge:
    76
    Zustimmungen:
    10
    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.
     
  6. 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.
     
  7. Anzeige

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

    hellfire Foren As

    Dabei seit:
    25.05.2016
    Beiträge:
    76
    Zustimmungen:
    10
    Wie bereits geschrieben: Quoting problem

    Der find sollte so lauten:

    Code:
    find "$OUTPUT"
    Also die Variable OUTPUT mit Gänsefüsschen geschützt.
     
  9. 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. 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?
  4. 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...
  5. 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...