Возможность получения списка файлов в папках, содержащих специальный файл - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь найти файлы в боковых папках, которые содержат файл «готово»

Я пытался сделать это в чистом виде, но я не мог заставить его работать, поэтому я пытаюсь сделатьон использует find, ls, xargs и затем запускает его внутри команды ansible shell.

пример для папок и файловой структуры:

├── a12
│   ├── 1.txt
│   ├── 2.txt
│   └── 3.txt
├── a13
│   ├── 4.txt
│   ├── 5.txt
│   ├── 6.txt
│   └── done
└── a14
    ├── 7.txt
    ├── 8.txt
    ├── 9.txt
    └── done

и я пытаюсь получить

4.txt
5.txt
6.txt 
7.txt
8.txt
9.txt 

с помощью команды

 find /tmp/test_an/ -type f -name 'done' | xargs dirname  | xargs ls -1 | grep -v 'done'

Я получаю

/tmp/test_an/a13:
4.txt
5.txt
6.txt

/tmp/test_an/a14:
7.txt
8.txt
9.txt

Я могу исключить папку, используя grep, но я ищу более чистое \ лучшее решение

1 Ответ

0 голосов
/ 11 декабря 2018

мое лучшее решение до сих пор:

 find /tmp/test_an/ -type f -name 'done' | xargs dirname  | xargs -I{} find {}  -type f 

/tmp/test_an/a13/5.txt
/tmp/test_an/a13/4.txt
/tmp/test_an/a13/done
/tmp/test_an/a13/6.txt
/tmp/test_an/a14/8.txt
/tmp/test_an/a14/9.txt
/tmp/test_an/a14/7.txt
...