centos7 编写批量修改文件后缀名脚本,如批量将某个目录下的所有txt文件修改为sh文件
时间: 2024-02-17 19:59:59 浏览: 129
可以使用以下 Shell 脚本实现批量修改文件后缀名:
```
#!/bin/bash
# 修改文件后缀名的脚本
# 需要修改的文件后缀名
old_ext=".txt"
new_ext=".sh"
# 需要修改的目录
dir_path="/path/to/dir"
# 进入目录
cd $dir_path
# 批量修改文件后缀名
for file in *.${old_ext}
do
mv "$file" "${file/%${old_ext}/${new_ext}}"
done
echo "文件后缀名修改完成!"
```
在脚本中,我们首先定义了需要修改的文件后缀名和需要修改的目录,然后使用 `cd` 命令进入目录。接着使用 `for` 循环遍历目录中所有以 `.txt` 结尾的文件,使用 `mv` 命令将文件后缀名修改为 `.sh`。最后输出修改完成的提示信息。
将上述脚本保存为 `rename.sh`,然后运行 `chmod +x rename.sh` 命令赋予脚本执行权限,最后执行 `./rename.sh` 即可批量修改文件后缀名。
相关问题
centos7下把a目录下的文件所有后缀为txt修改为log
你可以使用以下命令将 a 目录下的所有后缀为 txt 的文件修改为 log:
```
cd a
rename 's/\.txt$/.log/' *.txt
```
其中,`cd a` 是进入 a 目录;`rename` 命令是批量重命名文件的命令,`s/\.txt$/.log/` 表示将文件名中的 .txt 后缀替换为 .log;`*.txt` 表示要重命名的文件名符合 *.txt 模式。
centos7批量创建文件
在 CentOS 7 中批量创建文件,你可以使用 shell 脚本或者命令行工具如 `touch` 或 `dd` 来实现。这里提供一种简单的方法:
1. **使用 touch 命令**:
- 打开终端并进入你需要创建文件的目录。
- 创建一个包含文件名列表的文本文件,例如 `file_list.txt`,每行一个文件名。
- 使用循环逐行读取文件列表并执行 `touch` 命令。示例脚本:
```bash
#!/bin/bash
while IFS= read -r line; do
touch "$line"
done < file_list.txt
```
2. **使用 for 循环**:
如果每个文件名是一个变量,可以创建一个数组或从其他数据源(如命令行输入、环境变量等)读取文件名,然后用 for 循环逐个创建。
```bash
files=(file1 file2 file3 ...) # 替换为实际的文件名
for file in "${files[@]}"; do
touch "$file"
done
```
3. **使用 awk 操作**:
可以使用awk配合for循环,比如:
```bash
awk 'BEGIN {OFS="\n"} {print "touch "$0}' file_list.txt | sh
```
运行上述脚本之前,请确保它们具有执行权限 (`chmod +x script.sh`),然后通过 `./script.sh` 运行它。
如果你需要更复杂的文件内容或者其他定制化需求,可能需要调整脚本来适应实际情况。记得在执行前备份重要数据以防意外覆盖。
阅读全文