Рейтинг:1

Найти каталог с префиксом в имени

флаг do

У меня есть один большой каталог, содержащий множество подкаталогов, имена которых начинаются с 13xxx, 10xxx, 11xxx и так далее. Эти каталоги содержат текстовые файлы с именем my_file.txt. Теперь проблема в том, что я хочу изменить файлы только в каталогах 13xxx и 11xxx и не хочу трогать файлы в каталогах 10xxx. Я пытаюсь искать каталоги с помощью:

[-d "13*"] && ..
[-d "13"*] && ..

Но, похоже, это так не работает. Может ли кто-нибудь предоставить небольшой код, который решает эту загадку?

Рейтинг:1
флаг do

Итак, ответ был:

для д в 11*/; делать
    echo "#Текст для добавления" >> "$d"/my_file.txt;
сделано
для д в 13*/; делать
    echo "#Текст для добавления" >> "$d"/my_file.txt;
сделано
флаг eg
Не забудьте принять это как ответ на ваш вопрос.
Рейтинг:1
флаг in

Вы можете использовать цикл for и подстановку, например:

для d в 1[13]*; делать
    do_something "$d/my_file.txt";
сделано

или же

для f в 1[13]*/my_file.txt; делать
    сделать_что-то "$f";
сделано
флаг do
Это выполнение операции с каждым файлом в каждом каталоге. Таким образом, все файлы из 11xxx, 10xxx и 13xxx были изменены.
флаг do
Спасибо мужик за подсказку. Я понял это из подсказки, которую вы дали.
pLumo avatar
флаг in
Странно, должно нормально работать именно так и 10xxxx не должно включаться. Может ты что-то не так сделал?!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.