Как l oop через каждую строку в файле и использовать их в качестве условия для l oop через каталоги? - PullRequest
0 голосов
/ 30 января 2020

У меня есть файл в каталоге, который содержит несколько строк, скажем, 10. В этом каталоге у меня есть другие подкаталоги, скажем, 100. Что я хочу: go для каждого подкаталога, который «совпадает» с имя подкаталога существует в файле. Итак, в основном мне нужно своего рода условие 'match string', которое будет сравнивать каждую строку файла и все подкаталоги, а затем go с указанным c подкаталогом при наличии совпадения.

Файл выглядит следующим образом:

SCEL16_4_2_2_0_0_2
SCEL1_1_1_1_0_0_0
SCEL32_4_4_2_2_2_0
SCEL32_4_4_2_2_2_0
SCEL32_4_4_2_2_2_0
SCEL32_4_4_2_2_2_0
SCEL32_4_4_2_2_2_0
SCEL32_4_4_2_2_2_0
SCEL8_8_1_1_0_0_7
SCEL8_8_1_1_0_0_6

И каталог содержит около 100 или более подкаталогов с похожими именами. Мне нужен способ go только через эти 10 подкаталогов, упомянутых в файле. Я попытался сделать что-то вроде:

for i in */; do echo $i; done

, который сообщает мне все подкаталоги, присутствующие в текущем каталоге, но я не понимаю, как навязать условие 'match' здесь в приведенной выше команде. Есть ли способ быстро решить эту проблему?

1 Ответ

0 голосов
/ 30 января 2020

Давайте скажем, что файл, содержащий список, является "list_dirs"

Использовать аналогично приведенному ниже logi c

for dir in list_dirs; do
perm=$(ls -la $dir 2>/dev/null);
if [-n $perm ]; 
then 
    // here do whatever is need if it matches
else
    // else part here
fi

Logi c:

ls -la проверит наличие каталога или его отсутствие и, если 2>/dev/null есть, то переменная perm станет пустой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...