I have a directory with contents like the below example.
I want to search subdir1, subdir2 & subdir3
for files testA/*a.txt, testB/*b.txt & testC/*c.txt
. I want a list of all subdirectories only where all 3 exist.
In this example, that would be only subdir1
& subdir2
.
subdir1/
subdir1/testA/
subdir1/testA/subdir1-a.txt
subdir1/testB/
subdir1/testB/subdir1-b.txt
subdir1/testC/
subdir1/testC/subdir1-c.txt
subdir2/
subdir2/testA
subdir2/testA/subdir2-a.txt
subdir2/testB
subdir2/testB/subdir2-b.txt
subdir2/testC/
subdir2/testC/subdir2-c.txt
subdir3/
subdir3/testA
subdir3/testA/subdir3-a.txt
subdir3/testB
subdir3/testB/subdir3-b.txt
subdir3/testC/
subdir3/testZ
subdir3/testZ/subdir3-z.txt
I want to then get the output in alphabetical order, e.g.:
subdir1
subdir2
...and then get only the unique ones
(The need for this exists because I'm using find
at the moment, and the directories are listed out of order. The subdirs also have longer/more complex names.)
How can I do this?
I've gotten so far as to list one type of file, e.g. the *-a.txt
file, like this:
find . -wholename "**/testA/*a.txt
Apologies if the answer already exists somewhere, I looked but couldn't find one. Any advice would be much appreciated.