seduction
 Language:
Welcome, Guest. Please login or register.
Did you miss your activation email?
2020/08/12, 14:31:36


Help

Author [EN] [PL] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] Topic: Playlisten mit find suchen  (Read 2652 times)

0 Members and 1 Guest are viewing this topic.

Offline bluelupo

  • Global Moderator
  • User
  • *****
  • Posts: 2.066
    • BluelupoMe
Playlisten mit find suchen
« on: 2014/10/02, 19:27:28 »
Hallo Community,
ich habe da ein etwas kniffliges (zumindest für mich) Problem mit dem find Kommando. Ich möchte einen Teil des Verzeichnisbaumes meiner Musiksammlung nach vorhanden Playlisten durchsuchen, d.h. ich möchte als Ergebnis alle Verzeichnisse haben in den keine Playliste existiert.

Ich habe schon mit find ein bisschen herum experimentiert, aber komm nicht auf die Lösung :-(

Das Verzeichnis ab dem ich rekursiv durchsuchen möchte heißt /mnt/share/music und die Playlisten beginnen immer playlist_*.m3u.

Offline ayla

  • User
  • Posts: 1.706
Re: Playlisten mit find suchen
« Reply #1 on: 2014/10/03, 00:00:59 »
Hallo,

ich hab mal im Netz ein Script gefunden mit dem man directories löschen konnte sofern sie einen bestimmten Dateityp nicht enthielten, leider weiß ich nicht mehr woher ich es hab.

Auf Dein Problem angepasst
Quote
ich möchte als Ergebnis alle Verzeichnisse haben in den keine Playliste existiert.
sollte es so funktionieren:

Code: [Select]
#! /bin/bash

tree_contains_m3u_files()
{
   
    find "$1" -type f -name "*.m3u" -print0 |
        read -r -d $'\0' file && return 0

    return 1
}

find . -depth -type d -print0 |
while read -r -d $'\0' dir; do
    if ! tree_contains_m3u_files "$dir"; then
        echo "$dir"
    fi
done


Das 'rm -rf' hab ich bereits durch ein 'echo' ersetzt... :)

Vom übergeordneten dir aus aufrufen.


hth
ayla
« Last Edit: 2014/10/03, 00:07:02 by ayla »
Kernel: 4.18.11-towo.1-siduction-amd64 x86_64
Desktop: KDE Plasma 5.13.5
(mostly) kept current siduction "18.3.0 Patience"
HP EliteBook 8570p; MoBo: HP model: 17A7 v: KBC Version 42.35
Dual core  i5-3320M (-MT-MCP-)
Intel 3. Gen Graphics (Ivybridge) Driver:i915/ intel
 Wifi Intel Centrino N6205