写一个 shell 脚本: 两个文件内容都是数组,将这两个数组作为入参,要求将文件夹下所有文件内容中的第一个入参数组相同下标的值替换成第二个入参数组相同下标的值
时间: 2024-02-22 20:55:47 浏览: 53
Shell脚本实现批量替换文件内容
好的,以下是一个简单的 shell 脚本,它可以将两个文件中的数组作为输入参数,并将文件夹下所有文件中的第一个输入参数组相同下标的值替换成第二个输入参数组相同下标的值:
```bash
#!/bin/bash
# 定义两个文件的路径
file1_path="/path/to/file1"
file2_path="/path/to/file2"
# 读取两个文件中的内容到数组中
IFS=$'\n' read -d '' -r -a array1 < "${file1_path}"
IFS=$'\n' read -d '' -r -a array2 < "${file2_path}"
# 遍历文件夹下所有文件,并替换相应的值
for file in /path/to/folder/*; do
# 判断文件是否为普通文件
if [[ -f "${file}" ]]; then
# 读取文件内容到数组中
IFS=$'\n' read -d '' -r -a file_array < "${file}"
# 遍历数组,替换相应的值
for i in "${!file_array[@]}"; do
if [[ "${array1[i]}" == "${file_array[i]}" ]]; then
file_array[i]="${array2[i]}"
fi
done
# 将替换后的数组写回文件
printf "%s\n" "${file_array[@]}" > "${file}"
fi
done
```
该脚本会读取两个文件中的内容到两个数组中,遍历文件夹下所有文件,读取每个文件的内容到一个数组中,然后遍历该数组,并将相应的值替换成第二个数组中相同下标的值,最后将替换后的数组写回文件。
阅读全文