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

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

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

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

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

[USERNAME] and some static text...

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

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

Спасибо,

решение1

cd /var/www/vhosts && for d in */; do
   пользователь=${d%%.*}
   echo "$user бла-бла" > "${d}/conf/x.txt"
сделанный

... должно дать вам практически то, что вы хотите.

решение2

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

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

Ради переносимости я бы использовал "${d%%.*}" для поиска имени пользователя.

решение3

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

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

Связанный контент