Servus und frohe Weihnachten allerseits,
ich bräuchte mal Eure Hilfe, weil ich mit Regex auf Kriegsfuss stehe.
Ich habe auf einem Linuxserver z.B. ein Oberverzeichnis mit vielen Unterverzeichnissen:
/Photos/Urlaub_2000
/Urlaub_2001
Urlaub_2002
usw.
Wie kann ich mit jetzt mit "grep" oder "Find" o.ä.
eine Zählung je Verzeichnis mit Ausgabe in einer Datei machen ?
Also:
Urlaub_2000 = 254 Dateien
Urlaub_2001 = 544
Urlaub_2002 = 280
grep -c -r *.jpg /Photos/ >> Urlaub.txt
Führt leider nicht zum Erfolg. Darin werden alle gefundenen Dateien aufgelistet, obwohl nach meinem Verständnis der Parameter "-c" den Befehl zum zählen gibt
auch
find /Photos/ -type f | wc -l >> Urlaub2.txt
führt zum gleichen Ergebnis wie der Befehl mit "grep".
Ach ja, in den Zielverzeichnissen sind nur symbolische Links zu Dateien (Quelle liegt woanders)
Zitat von: Bartimaus am 25 Dezember 2024, 00:13:02obwohl nach meinem Verständnis der Parameter "-c" den Befehl zum zählen gibt
Zitat-c, --count nur die Anzahl der passenden Zeilen pro DATEI ausgeben
Da müsstest Du erst die Datei mit der Liste der Bilder erzeugen.
Sowas funktioniert eventuell, die Ausgabe kannst Du ja formatieren
for d in /photos/*/;do echo "$d $(find $d -name *.jpg|wc -l)";done
Schöne Weihnachten
Otto
for x in /opt/fhem/*/;do echo "$x $(find $x -maxdepth 1 -type f|wc -l)";done
ergibt:
/opt/fhem/contrib/ 99
/opt/fhem/demolog/ 10
/opt/fhem/docs/ 48
/opt/fhem/FHEM/ 615
/opt/fhem/lib/ 0
/opt/fhem/log/ 6
/opt/fhem/restoreDir/ 0
/opt/fhem/sqldb/ 6
/opt/fhem/t/ 1
/opt/fhem/thirdparty/ 1
/opt/fhem/webfrontend/ 0
/opt/fhem/www/ 0
- die Namen von Unterverzeichnissen werden nicht mitgezählt (-type f)
- es wird nicht rekursiv durch weitere Unterverzeichnisse gesucht (-maxdepth 1)
- die Dateiendung der Bilddateien ist egal
Allerdings habe ich jetzt nicht getestet, ob mit "-type f" auch symbolische Links gezählt werden oder nur echte Dateien.
Zitat von: betateilchen am 25 Dezember 2024, 13:18:42Allerdings habe ich jetzt nicht getestet, ob mit "-type f" auch symbolische Links gezählt werden oder nur echte Dateien.
Also wenn
Zitat von: Bartimaus am 25 Dezember 2024, 00:13:02in den Zielverzeichnissen sind nur symbolische Links zu Dateien
es tatsächlich so ist, dass NUR symbolische Links in den Verzeichnissen vorhanden sind, kannst Du statt "-type f" einfach "-type l" verwenden.
Zitat von: betateilchen am 25 Dezember 2024, 13:18:42for x in /opt/fhem/*/;do echo "$x $(find $x -maxdepth 1 -type f|wc -l)";done
ergibt:
/opt/fhem/contrib/ 99
/opt/fhem/demolog/ 10
/opt/fhem/docs/ 48
/opt/fhem/FHEM/ 615
/opt/fhem/lib/ 0
/opt/fhem/log/ 6
/opt/fhem/restoreDir/ 0
/opt/fhem/sqldb/ 6
/opt/fhem/t/ 1
/opt/fhem/thirdparty/ 1
/opt/fhem/webfrontend/ 0
/opt/fhem/www/ 0
- die Namen von Unterverzeichnissen werden nicht mitgezählt (-type f)
- es wird nicht rekursiv durch weitere Unterverzeichnisse gesucht (-maxdepth 1)
- die Dateiendung der Bilddateien ist egal
Allerdings habe ich jetzt nicht getestet, ob mit "-type f" auch symbolische Links gezählt werden oder nur echte Dateien.
Perfekt, danke !
for x in /opt/fhem/*/;do echo "$x $(find $x -maxdepth 1 -type f|wc -l)";done >> Urlaube.txt
liefert das gewünschte Ergebnis (auch mit symbolischen Links). Da wär ich im Leben nicht drauf gekommen
Moin,
ein erfüllter Wunsch weckt einen neuen.
Bislang habe die die Anzahl der Dateien in einem Verzeichnis verwendet, um daraus händisch "persönliche Best-of" Listen zu generieren. (Excel)
Was ich möchte:
Ich habe z.B. 100 Ordner mit persönlichen Lieblingsstuecken.mp3 eines Interpreten/Band whatever.
Jetzt möchte ich die Gesamtanzahl der *.mp3 ermitteln um daraus einen Mittelwert (Anzahl) zu errechnen.
Diese gemittelten "Stücke" möchte ich zufallsbasiert in diverse Ordner kopieren (symbolischer Link). Die Anzahl der Stücke pro Ordner soll z.B. 100 nicht überschreiten. Die Anzahl der Ordner erfolgt dabei dynamisch, da auch die Quellordner mit der zeit wachsen.
So erhalte ich diverse Ordner wo jetzt nicht 50 Stücke von Interpret "A" drin sind, sondern wild gemischt.
Habt Ihr ne Idee, wie man sowas "automatisch" berechnen/erstellen kann ?
Dafür gibt es doch fertige Lösungen, die perfekt funktionieren.
Google mal nach "software shuffle playlist erzeugen"
Sowas gibts ? Cool, danke. Schaue ich mal.