Вопрос: Создание тысяч файлов из оболочки


У меня есть тысячи каталогов, все они имеют этот формат;

/var/www/vhosts/[USERNAME].company.com/conf/

и у меня есть файл с именем x.txt, его содержимое должно иметь

[USERNAME] and some static text...

поэтому, когда я делаю dir / var / www / vhosts / * / conf /, я получаю все каталоги, которые мне нужны для копирования файла, но я не знаю, как захватить это [USERNAME] и поместить его в этот файл, который мне нужно скопировать.

Все предложения приветствуются. Я могу использовать только сценарии оболочки в этой среде.

Благодаря,


4
2018-01-24 03:01


Источник




Ответы:


cd / var / www / vhosts && для d в * /; делать
   Пользователь = $ {d %%. *}
   echo "$ user blah blah"> "$ {d} /conf/x.txt"
сделанный

... должно получить вам в значительной степени то, что вы хотите.


5
2018-01-24 03:17



Вы должны поместить косую черту после звездочки, поэтому включены только каталоги: for d in */ - Dennis Williamson
хорошая точка, обновленная - Mike Pountney
Спасибо, я снова спас мир. Вы бы порекомендовали любую хорошую книгу / url на эту тему? - Devrim
От Bash до Zsh, Apress является хорошим: apress.com/book/view/1590593766 , Кроме того, классическая оболочка Scripting от O'Reilly: my.safaribooksonline.com/0596005954 - Mike Pountney


Деннис и Майк убеждаются, что вы цитируете $ {dir}. Если есть какие-либо каталоги с пробелами, это может привести к некоторым проблемам.

echo "$user and some static text..." > "${dir}/conf/x.txt"

Для мобильности я бы использовал «$ {d %%. *}» Для поиска имени пользователя.


3
2018-01-24 06:50



хорошая точка в котировках, а ваш отзыв на $ {d %%. *} сохраняет более 1000 вызовов awk, обновляется! - Mike Pountney


Вот еще один способ сделать это:

cd /var/www/vhosts &&
find -maxdepth 1 -mindepth 1 -type d -print0 |
while read -d '' -r dir
do
    user=$(basename "$dir" .company.com)
    echo "$user and some static text..." > "${dir}/conf/x.txt"
done

2
2018-01-24 06:43



Спасибо Деннис, я бы хотел выбрать два ответа. Вы бы порекомендовали любую хорошую книгу / url на эту тему? - Devrim
На скриптах Bash? Поиск ServerFault и StackOverflow. Есть вопросы / ответы, которые укажут путь. Я могу порекомендовать mywiki.wooledge.org/EnglishFrontPage - Dennis Williamson
Спасибо Деннису. Всегда хорошо учиться у профессионала, что стоит читать. - Devrim