LINUX.ORG.RU

Вопрос по циклам

 , , , ,


0

2

Здравствуйте.

пункт 1. Есть текстовый файл, содержащий разные строки, где каждая начинается с новой строки.

пункт 2. Есть директория, содержащая файлы, где основная часть названия - повторяется парами, по двое; а конец названия как в примере ниже, то есть повторы идут через раз.

Пример:

  • hello.com.ua.access.list
  • hello.com.ua.error.log
  • donald.ru.access.list
  • donald.ru.error.log

... и т.д

Цель: применить комманду смены группы к каждому файлу из директории (пункт 2), но само название для смены группы берётся из текстового файла с самого начала (пункт 1), и только одно название должно быть для одной пары файлов, потом следующие название для следующей пары и т.д.

Пример:

  • chgrp lala hello.com.ua.access.list
  • chgrp lala hello.com.ua.error.log
  • chgrp gaga donald.ru.access.list
  • chgrp gaga donald.ru.error.log

... и т.д

Вопрос: я так понимаю, что это можно сделать двумя циклами через итерацию, но как это правильно реализовать ? Есть какие-то догадки ? Моя версия такова, но она не работает:

for i in $директория
do
while read line
do
chgrp $line $i
done < $текстовыйфайл
done
exit 0


Последнее исправление: gamble (всего исправлений: 15)

Уточни, почему lala для hello, а не, например, gaga?

Если бы в файле было

lala hello.com.ua
gaga donald.ru
было бы проще сделать надёжно. А цикл один нужен, лишь бы он не разъехался.
for i in $директория/*
do
read line
chgrp $line $i
done < $текстовыйфайл

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от gamble

только одна группа на одну пару файлов, поэтому так.

Задачи, безусловно, разные бывают на свете. Вот только накой решать дурацкие? Ну правильно же вам говорят, если кто-то следит, чтобы не разъехался порядок файлов в каталоге и имена групп, то почему бы ему сразу и не сделать сопоставление домен=>группа, ему же будет проще добавлять новые домены в конец, а не искать место в отсортированном. Тогда скрипт будет и простой и безглючный.

vodz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.