在一个目录中,我有一些*.html文件。我想把它们都重命名为*.txt
我该怎么做呢?我使用bash shell。
在一个目录中,我有一些*.html文件。我想把它们都重命名为*.txt
我该怎么做呢?我使用bash shell。
当前回答
最简单的方法是使用重命名。ul它出现在大多数Linux发行版中
重命名。ul -o -v [oldFileExtension] [newFileExtension][搜索要应用的文件的表达式]
rename.ul -o -v .oldext .newext *.oldext
选项:
-o:不覆盖预先存在的. newnext
- v:详细
-n:演练
其他回答
你可以使用一个专为批量重命名文件而设计的工具,例如renamer。
重命名当前文件夹下的所有文件扩展名。
$ renamer --find ".html" --replace ".txt" --dry-run *
这里有更多的用法示例。
重命名当前目录和子目录下所有文件的扩展名,不需要任何其他包(仅使用shell脚本):
在当前目录下创建shell脚本rename.sh,代码如下: #!/bin/bash 在$(查找。- name“* 1美元”);做 Mv "$file" "${file%$1}$2" 完成 通过./rename.sh .old .new运行它。 例如:./rename.sh .html .txt
这里有一个解决方案,使用AWK。确保文件存在于工作目录中。否则,cd到html文件所在的目录,然后执行以下命令:
for i in $(ls | grep .html); do j=$(echo $i | grep -oh "^\w*." | awk '{print $1"txt"}'); mv $i $j; done
最简单的方法是使用重命名。ul它出现在大多数Linux发行版中
重命名。ul -o -v [oldFileExtension] [newFileExtension][搜索要应用的文件的表达式]
rename.ul -o -v .oldext .newext *.oldext
选项:
-o:不覆盖预先存在的. newnext
- v:详细
-n:演练
rename 's/\.html$/\.txt/' *.html
这正是你想要的。