Experimente o seguinte script:
#!/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
Eu tenho uma estrutura de diretórios dos seguintes itens
.
├── 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
etc.
Existem arquivos chamados x.file
em pastas chamadas b
que eu quero alterar uma frase em cada. Como posso fazer isso sem alterar os outros arquivos com o nome x.file
em outros diretórios e pastas da maneira mais rápida possível?
Obrigado.
Experimente o seguinte script:
#!/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