Forum: PC Hard- und Software Dateien suchen anhand Liste


von Christian Faber (Gast)


Lesenswert?

Hallo

wie kann ich am einfachsten prüfen, welche der in einer textdatei 
angeführten Dateien sich in einem bestimmten Ordner befinden?

in files.txt steht z.B.:
1
peter.jpg
2
paul.jpg
3
patrick.jpg

im entsprechenden Verzeichnis sind die ersten 2 Dateien enthalten, 
jedoch nicht die 3. Ich sollte nun als Resultat den Dateinamen erhalten, 
der nicht im Verzeichnis vorkommt.

Wie stelle ich dies am einfachsten an, evtl. auch mit Linux?

von AK (Gast)


Lesenswert?

Schau mal den Befehl "comm" an.

Der Befehl geht falls files.txt schon sortiert ist:
ls Directory | sort | comm -1 - files.txt

Das -1 bei comm ggf anpassen siehe man comm

von WIRO (Gast)


Lesenswert?

Unter Windows tut es eine Batchdatei mit folgendem Inhalt:
1
@for /f %%i in (files.txt) do @dir %%i>nul 2>nul || echo %%i
Gruß
WIRO

von Rolf M. (rmagnus)


Lesenswert?

WIRO schrieb:
> Unter Windows tut es eine Batchdatei mit folgendem Inhalt:
1
> @for /f %%i in (files.txt) do @dir %%i>nul 2>nul || echo %%i

Das Pendant in der Bash sähe so aus:
1
while read -r i; do (stat -- ${i} >/dev/null 2>&1) || echo ${i}; done < files.txt

: Bearbeitet durch User
von Norbert (Gast)


Lesenswert?

Rolf M. schrieb:
> WIRO schrieb:
>> Unter Windows tut es eine Batchdatei mit folgendem Inhalt:> @for /f %%i in
> (files.txt) do @dir %%i>nul 2>nul || echo %%i
>
> Das Pendant in der Bash sähe so aus:while read -r i; do (stat -- ${i}
>>/dev/null 2>&1) || echo ${i}; done < files.txt

Was ist denn nur aus dem guten alten  [ -e file ] geworden? ;-)

Ungetestet:
1
while read -r fn; do [ -e "$fn" ] || echo "$fn"; done < files.txt

von Rolf M. (rmagnus)


Lesenswert?

Norbert schrieb:
> Was ist denn nur aus dem guten alten  [ -e file ] geworden? ;-)

Ja, stimmt, das ist natürlich eher das Mittel der Wahl. Aber stat ist 
immerhin auch "gut" und "alt" :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.