Bash скрипт для поиска файла в дереве каталогов и добавления его в другой файл - PullRequest
0 голосов
/ 28 марта 2009

Заголовок более упрощен, чем функциональность, которую я пытаюсь выразить в сценарии.

У меня одноуровневое дерево каталогов (намного больше, чем в примере), которое содержит различное содержимое, хотя мне интересны только два конкретных файла. Файл с именем 'current', а другой с именем 'revisions'

- foo
   |
   |-> current

- bar
   |
   |-> current
   |-> revisions

- baz
   |
   |-> not-affected

Запрашиваемый сценарий будет запускаться из родительского каталога в foo / bar / baz, и он будет выполнять следующее

  1. Сканирование всех подкаталогов
  2. Когда он находит каталог, содержащий 'current', он будет

    1. Добавить содержимое 'current' в ревизии 'cat $ {pwd} / current >> $ {pwd} / revisions'
  3. Каталоги, не содержащие файл с именем 'current', должны остаться без изменений

Ответы [ 2 ]

1 голос
/ 28 марта 2009
for i in */current; do
  cat "${i}" >> "{i%/*}/revisions"
done

Обратите внимание, что это создаст ревизии, если она не существует.

1 голос
/ 28 марта 2009

Если это один уровень глубины, это должно работать:

for c in */current; do cat ${c} >> ${c%%current}revisions; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...