Поиск файла внутри главной папки - PullRequest
0 голосов
/ 09 января 2019

У меня есть основная папка с результатами, внутри которой есть несколько config.txt файлов. Однако мне нужно получить пути только к файлам config.txt внутри подпапки netlist , внутри главной папки результатов, которая указана.

Я попробовал этот код, но он не сработал.

find $mainResultPath -name "config.txt"

Вот фрагмент кода, предполагая, что мы уже находимся в $ mainResultPath Фрагмент кода и файлы reqd отмечены галочкой

1 Ответ

0 голосов
/ 09 января 2019

Это должно работать:

find $mainResultPath -type d -name netlist | \
   xargs -I {} find {} -maxdepth 1 -type f -name config.txt

т.е. сначала отфильтруйте каталоги netlist, а затем найдите в них файлы config.txt.

Пример вывода из моего теста:

$ find $HOME/Documents -type f -name config.txt
/home/.../Documents/Downloads/RFC/netlist/config.txt
/home/.../Documents/config.txt
/home/.../Documents/netlist/config.txt

$ find $HOME/Documents -type d -name netlist
/home/.../Documents/Downloads/RFC/netlist
/home/.../Documents/Downloads/netlist
/home/.../Documents/netlist

$ find $HOME/Documents -type d -name netlist | xargs -I {} find {} -maxdepth 1 -name config.txt
/home/.../Documents/Downloads/RFC/netlist/config.txt
/home/.../Documents/netlist/config.txt

РЕДАКТИРОВАТЬ 2: Если вам не нравится вторая находка, то это тоже работает

$ find $HOME/Documents -type d -name netlist | \
     while read _d; do [ -f "${_d}/config.txt" ] && echo "${_d}/config.txt"; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...