Найти файлы в определенных каталогах и заменить фразу

У меня есть структура каталогов следующего

.
├── dir1
│   ├── a
│   │   ├── x.file
│   │   ├── y.file
│   │   └── z.file
│   ├── b
│   │   ├── x.file
│   │   ├── y.file
│   │   └── z.file
│   └── c
│       ├── x.file
│       ├── y.file
│       └── z.file
└── dir2
    ├── a
    │   ├── x.file
    │   ├── y.file
    │   └── z.file
    ├── b
    │   ├── x.file
    │   ├── y.file
    │   └── z.file
    └── c
        ├── x.file
        ├── y.file
        └── z.file

и т. Д.

В папках с именем b есть файлы с именем x.file, в каждой из которых я хочу изменить фразу. Как я могу сделать это, не меняя другие файлы с именем x.file в других каталогах и папках, как можно быстрее?

1
задан 31 July 2013 в 09:07

1 ответ

Попробуйте следующий скрипт:

#!/bin/bash

find . -type d -name "b" | while read Folder; do
    find "$Folder" -type f -name "a.xyz" | while read File; do
        sed -i 's/phrase1/phrase2/g' "$File"
    done
done
0
ответ дан 31 July 2013 в 09:07

Другие вопросы по тегам:

Похожие вопросы: