Archiv verlassen und diese Seite im Standarddesign anzeigen : Gleichnamige Verzeichnisse in versch. Unterverzeichnissen filtern
Hallo,
habe gleichnamige Verzeichnisse in unterschiedlichen Verzeichnissen und möchte diese Filtern um doppelte anschließend zu löschen.
Kennt jemand einen einfachen Befehl z.B. per "find ..." ?
Sonst muss ich das alternativ mit Schleifen und Co. lösen :-/
Gruß
find -type d | awk -F '/' 'x[$NF]++'
Im kleinen Testfall hat das funktioniert (wie es in einem großen Fall aussieht, weiß ich aber nicht), es wird jeweils die unterste Ebene abgleichen - das geht natürlich schief, wenn du einen Verzeichnisbaum hast, der z.B. so aussieht:
.
|-- a
| |-- a
| |-- b
| |-- c
|-- b
| |-- a
| |-- b
| |-- c
| |-- d
In dem Fall bräuchtest du eine Verzeichnisstruktur, bei der die unterste Ebene immer auf der gleichen ist, dann kannst du
find -type d | awk -F '/' 'x[$<Ebene>]++'
verwenden, im Beispiel also 'x[$2]++'.
Unproblematisch ist der erste Ansatz bei einem Verzeichnisbaum, bei dem kein Elternelement den gleichen Namen trägt wie ein beliebiges Element in den darunter liegenden Ebenen.
wenn die verzeichnisse immer auf der selben ebene auftreten kannst du in diesem fall auch das benutzen:
find . -type d | perl -F'/' -ane 'print if $x{ $#F ."__". $F[ $#F ] }++'
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.