在特定目录中查找文件并替换短语

在特定目录中查找文件并替换短语

我有以下目录结构

.
├── 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。

x.file文件夹中有名为的文件b,我想更改每个文件中的短语。如何以x.file最快的方式做到这一点而不更改其他目录和文件夹中名为的其他文件?

谢谢。

答案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

相关内容