递归替换替换/home/daas目录下的.sh和.conf和.config和.properties文件的指定字符串
时间: 2024-02-06 22:09:38 浏览: 67
可以使用递归遍历目录的方式,找到所有符合条件的文件,并对其中的字符串进行替换。下面是一个可能的实现:
```bash
#!/bin/bash
# 要替换的字符串和替换后的字符串
FIND_STR="old_string"
REPLACE_STR="new_string"
# 递归遍历目录并替换指定类型的文件中的字符串
function replace_in_files {
for file in "$1"/*; do
if [[ -d "$file" ]]; then
replace_in_files "$file"
elif [[ -f "$file" ]]; then
if [[ "$file" == *.sh || "$file" == *.conf || "$file" == *.config || "$file" == *.properties ]]; then
sed -i "s/$FIND_STR/$REPLACE_STR/g" "$file"
fi
fi
done
}
# 从指定目录开始遍历
replace_in_files "/home/daas"
```
这个脚本会递归地遍历 `/home/daas` 目录下的所有文件和子目录。对于每个找到的文件,如果它是 `.sh`、`.conf`、`.config` 或 `.properties` 类型的文件,就使用 `sed` 命令进行替换。注意,替换操作是在原文件上进行的,因此要谨慎操作。
阅读全文