Liste von Dateien auf Existenz prüfen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
snyborg
Beiträge: 256
Registriert: 08.08.2007 22:07:32
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Liste von Dateien auf Existenz prüfen

Beitrag von snyborg » 29.02.2020 10:30:38

Hi,

ich greppe ein Log nach bestimmten Dateipfaden und möchte Diese dann auf Existenz prüfen.

Mache ich das mit xargs oder gibt es hier eine elegantere Methode?

Irgendwie befürchte ich hierzu auf dem Schlauch zu stehen...
Wenn deine Freunde Linux haben, wechsel zu Linux.
Wenn deine Freunde BSD haben, wechsel zu BSD.
Wenn deine Freunde Windows haben, wechsel deine Freunde.

wanne
Moderator
Beiträge: 7558
Registriert: 24.05.2010 12:39:42

Re: Liste von Dateien auf Existenz prüfen

Beitrag von wanne » 29.02.2020 11:09:55

Wie viele? Und wie absurde Namen?
Bei kleineren Mengen:

Code: Alles auswählen

for dat in $(cat liste)
do [ -f "$dat" ] || echo File "$dat" existiert nicht
done
rot: Moderator wanne spricht, default: User wanne spricht.

tobo
Beiträge: 2349
Registriert: 10.12.2008 10:51:41

Re: Liste von Dateien auf Existenz prüfen

Beitrag von tobo » 29.02.2020 12:34:22

Warum die gezeigte Herangehensweise schlecht ist und wie man es richtig machen kann, findet sich z.B. hier unter #1:
http://mywiki.wooledge.org/BashPitfalls
Zuletzt geändert von tobo am 29.02.2020 16:05:41, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Liste von Dateien auf Existenz prüfen

Beitrag von Meillo » 29.02.2020 13:34:25

Die Frage ist, was du mit der Existenzinformation anfangen willst. Je nachdem koennen unterschiedliche Umsetzungen sinnvoll sein.
Use ed once in a while!

wanne
Moderator
Beiträge: 7558
Registriert: 24.05.2010 12:39:42

Re: Liste von Dateien auf Existenz prüfen

Beitrag von wanne » 29.02.2020 13:51:56

Und wie absurde Namen?
tobo hat geschrieben: ↑ zum Beitrag ↑
29.02.2020 12:34:22
Warum die gezeigte Herangehensweise schlecht ist und wie man es richtig machen kann, findet sich z.B. hier unter #1:
Wenn du's save machen willst nimm C und verschwende einen Tag für.
Schlag mal eine kurze Lösung vor und ich gebe dir den File an dem es scheitert. Bash und beliebiger userinput funktioniert halt bescheiden.
rot: Moderator wanne spricht, default: User wanne spricht.

tobo
Beiträge: 2349
Registriert: 10.12.2008 10:51:41

Re: Liste von Dateien auf Existenz prüfen

Beitrag von tobo » 29.02.2020 16:07:57

Über die richtige Herangehensweise haben sich glücklicherweise schon eine Menge Leute den Kopf zerbrochen, weswegen man auch sehr einfach zwischen richtig und falsch unterrscheiden kann:
http://mywiki.wooledge.org/BashFAQ/001

wanne
Moderator
Beiträge: 7558
Registriert: 24.05.2010 12:39:42

Re: Liste von Dateien auf Existenz prüfen

Beitrag von wanne » 29.02.2020 17:39:49

Na dann nenn doch mal eine Schöne Variante für dieses Problem.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Liste von Dateien auf Existenz prüfen

Beitrag von Meillo » 29.02.2020 17:47:29

Mir fehlt dafuer eigentlich noch ein bisschen mehr Input. Was soll passieren, wenn eine Datei (nicht) existiert? Ausgabe (welcher Art)? Aktion? Davon haengt ab, wie ich es konkret umsetzen wuerde.

Zudem: Ist bereits geloest, wie man die zu pruefenden Dateinamen aus dem Logfile raus bekommt? Koennen wir als Input eine Liste von Dateinamen (einen je Zeile) annehmen? (Es versteht sich dann natuerlich, dass die Dateinamen keine Newlines enthalten duerfen. Koennen wir das voraussetzen?)

Wenn diese Infos da sind, dann koennen wir uns auch an konkrete Umsetzungen machen. Derzeit habe ich ein halbes Dutzend Ansaetze im Kopf, die je nach den Antworten auf obige Fragen, sinnvoll sind oder nicht.
Use ed once in a while!

Antworten