Danke erstmal für die Antworten.
Ich gebe dir Recht Cosinus, allerdings ist die Vorgabe, dass das Script vorher überprüfen soll ob es überhaupt dateien in den Unterordnern gibt ☹
Eine eigene Funktion würde jedoch zuviel Zeit in Anspruch nehmen
Wisst ihr ob es die Möglichkeit gibt nach dem Find Befehl die Ausgabe mit basename zu schneiden ? \\ bekomme dort immer einen Fehler
Ordner Rekursiv auflisten und Dateiinformationen herauslesen
(Themenstarter)
Anmeldungsdatum: Beiträge: Zähle... |
|
||||||
Anmeldungsdatum: Beiträge: 1374 Wohnort: HB |
Sag nicht, dass das ne Hausaufgabe ist 😀 |
||||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 27 |
@cosinus naja eher ne Vorgabe von meinem Arbeitgeber ^^ |
||||||
Anmeldungsdatum: Beiträge: 1374 Wohnort: HB |
Und mit Arbeitgeber meinst du Ausbilder? 😛 |
||||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 27 |
@cosinus nein frisch aus der Ausblidung raus ;)Gottseidank ^^ |
||||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 27 |
Ne Lösung für ne Möglichkeit Basename mit find zu kombinieren wäre mir jetzt ehrlich gesagt aber lieber |
||||||
Ehemalige
Anmeldungsdatum: Beiträge: 4563 Wohnort: Berlin |
@giphy86: Was meinst Du mit „Eine eigene Funktion würde jedoch zuviel Zeit in Anspruch nehmen“? Weder beim schreiben einer Funktion, noch beim Ausführen, sehe ich das man da zwingend mehr Zeit braucht als wenn man das mit Die Vorgabe mit dem vorherigen Testen kann man mit |
||||||
Moderator, Webteam
Anmeldungsdatum: Beiträge: 5813 Wohnort: Ankh-Morpork |
Ich kenne das bei mir nur so das der AG das Resultat vorgibt, wie wir das machen ist dem egal. find erledigt diese Bedingung implizit für dich ja schon mit (Und ist außerdem bei großen Verzeichnisbäumen auch deutlich schneller, da schon seit Jahren auf genau solche Operationen optimiert). Ich würde vllt. mal kurz mit dem Vorgesetzten sprechen das find die elegantere Lösung wäre und du gerne auf dieser Basis weiterarbeiten willst. Schweigen ist Silber, reden ist Gold und so ☺. Wenn er dann auch noch als Bedingung Ordner haben will die nichts beinhalten die dem Muster entsprechenen baust du nur noch den Verzeichnisbaum auf und entfernst die vorher gefundenen Pfade, Problem gelöst. |
||||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 27 |
Also erstes Problem hab ich jetzt einfach mal so gelöst. |
||||||
Ehemalige
Anmeldungsdatum: Beiträge: 4563 Wohnort: Berlin |
@giphy86: Zeile 4 macht keinen Sinn und führt zu Ich sehe auch nicht so wirklich welches Problem das jetzt löst, weil Du hier die Information wegwirfst in welchem Verzeichnis sich die Dateien befinden. Du willst ja aber nach bisherigen Aussagen wissen welche/wie viele der jeweiligen Dateien im jeweiligen Verzeichnis liegen. Logisch macht es mehr Sinn alle Verzeichnisse rekursiv durch zu gehen und für jedes Verzeichnis zu ermitteln was für das Verzeichnis ausgegeben werden soll. |
||||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 27 |
|||||||
Projektleitung
Anmeldungsdatum: Beiträge: 12801 |
Dann kannst Du gleich die ganzen Namen ausgeben, oder? Hier noch ein bisschen Ruby-Skripterei:
|
||||||
Anmeldungsdatum: Beiträge: 17548 Wohnort: Berlin |
Später heißt es dann xxx-Dateien (Pornos?).
Hier klingt es so, als ginge es um insgesamt eine csv-Datei, in der pro Verzeichnis dann eine csv-Zeile steht, ergonomisch sinnvoll dargestellt als eine Spalte: Verzeichnisname Anzahl der Files Anzahl der Datensätze in den Dateien in dem Verzeichnis Datum/Uhrzeit älteste Datei Datum/Uhrzeit jüngste Datei
Hier ist von Unterverzeichnissen die Rede. Im Hauptverzeichnis findet sich jetzt was, in den Unterverzeichnissen nichts - soll jetzt die Datei leer bleiben oder nicht? Ich denke, für (Unter-)verzeichnisse ohne passende Datei soll keine Zeile geschrieben werden.
Die Römer haben das wichtigste dazu bereits erfunden, allerdings ohne es zu implementieren, und es heißt 'divide et impera' - 'teile und herrsche'.
Das wäre der Teil, der alle Verzeichnisse besucht, um Dein teuflisches Script anzuwenden. Was sollte das erledigen?
Verzeichnisname ist der Parameter, den wir dem Script mitgeben, also $1. Theoretisch stimmt die Aussage, dass die Zahl der Files mit wc nicht ohne weiteres ermittelt werden kann, wenn der Dateiname einen Zeilenumbruch enthält. Praktisch sind solche Dateinamen selten.
Da wir nichts über Datensätze in XXX-Dateien wissen können wir hierzu wenig sagen. Außer dass, nach Ansicht der Römer und Adam Rieses, die Summe der Datensätze aller Dateien die Zahl der Datensätze im Verzeichnis sein sollte. Sag uns, wie man die Datensatzzahl für eine Datei bestimmt, und wir sagen Dir, wie man sie für alle bestimmt. Unser geheimer Trick heißt Addition.
Ja, das ist etwas eklig, Datum, Datumsformatierung, sortieren nach Datum, die blöden Zeilenschaltungen in Dateinamen, mit denen man ständig rechnet, die aber noch seltener kommen als Flughafeneröffnungen in Berlin. Am Ende hübsch prüfen, ob überhaupt eine Datei gefunden wurde (count > 0) und wenn ja, auf die Standardausgabe ausgeben, dann kann man - und hier schlägt unsere epische Erzählung den großen Bogen zurück zum ersten find - die 5 Werte mit Semikolon getrennt auf die Ausgabe schreiben, und find leitet alles, wie eine gute Mutter, in die CSV-Datei:
|
||||||
Ehemalige
Anmeldungsdatum: Beiträge: 4563 Wohnort: Berlin |
Ansatz wie das in einer vernünftigen (?) Programmiersprache (Java) aussehen könnte:
|
||||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 27 |
Morning in the Morning 😉 Und täglich grüßt das Murmeltier^^
Mein nächstes Ziel wäre es über uniq einmalig den Ordner auszugeben und den nächsten in die nächste Zeile zu bekommen und danach die Anzahl der Dateien im Ordner zu ermitteln . |