批量重命名具有不同扩展名Linux Script的多个文件?
发布时间:2020-12-14 01:22:56 所属栏目:Linux 来源:网络整理
导读:我想编写一个 linux脚本,将所有文件移动或复制到具有相同文件名(但扩展名不同)的文件到所有这些文件的新文件名,同时保持不同的扩展名.换一种说法: 如果我从目录列表开始: file1.txt,file1.jpg,file1.doc,file12.txt,file12.jpg,file12.doc 我想编写一个脚
我想编写一个
linux脚本,将所有文件移动或复制到具有相同文件名(但扩展名不同)的文件到所有这些文件的新文件名,同时保持不同的扩展名.换一种说法:
如果我从目录列表开始: file1.txt,file1.jpg,file1.doc,file12.txt,file12.jpg,file12.doc 我想编写一个脚本来更改所有文件名而不更改扩展名.对于同一示例,选择file2作为新文件名,结果将是: file2.txt,file2.jpg和file2.doc,file12.doc 因此,不会更改其文件名与当前条件不匹配的文件. 最好的祝愿, 乔治 解决方法
注意:如果变量i中有file1.doc,则表达式${i ## *.}在这种情况下提取扩展名,即doc.
一线解决方案: for i in file1.*; do mv "$i" "file2.${i##*.}"; done 脚本: #!/bin/sh # first argument - basename of files to be moved # second arguments - basename of destination files if [ $# -ne 2 ]; then echo "Two arguments required." exit; fi for i in $1.*; do if [ -e "$i" ]; then mv "$i" "$2.${i##*.}" echo "$i to $2.${i##*.}"; fi done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |