У меня есть структура каталогов следующего
.
├── 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
в других каталогах и папках, как можно быстрее?
Попробуйте следующий скрипт:
#!/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