对于单个的文件,可以直接使用以上的命令,那源扰前如果有大量的类似格式的文件名需要修改成其他格式的,该如何呢?
比如某次测试后,保存的文件为 Lan1.txt, Lan2.txt,....Lan100.txt
这一百个文件需要在前面添加前缀变成类似 ch7_Lan1.txt,如果你还想使用mv来一个一个...多痛苦啊
当前文件夹下,文件修改有4种方式
1. 使用while Loop加 ${//}来实现Lan到 ch7_Lan的替换
点击(此处)折叠或打开
find . -name "Lan*txt" -type f | read files
do
new=${files/Lan/李咐ch7_Lan}
mv $files $new
done
2. 充雹清分利用 awk的分隔符功能来实现
点击(此处)折叠或打开
ls *Lan* | awk 'BEGIN{FS="Lan"OFS="ch7_Lan"}{printf "mv "$0" "$1=$1print $0}' | sh
首先,修改 FS和 OFS,输入和输出的分隔符
其次,使用 awk中的命令,拼接 “mv Lan1.txt ch7_Lan1.txt”这条命令
最后,使用|sh来执行一个 shell命令来完成 mv动作
其中,$1=$1是必须的,这个是完成 Lan===>ch7_Lan的关键(其实是可以使用 $2=$2等来替换,只要一个赋值动作而已)
奇怪的是,难道没有赋值动作,分隔符的改变就不能检测出来么??
3. 使用 awk的内置命令,gsub和 system来实现替换和命令执行
点击(此处)折叠或打开
ls "*Lan*" | awk '{org=$0gsub("Lan", "ch7_Lan")system("mv "org" "$1)}'
首先保存原始的数据
其次修改 Lan为 ch_Lan
最后执行mv动作
#!/bin/shcd /storage/凳派emulated/0/DCIM/MadV360/
vifile=`ls *.vi`
viname=`echo ${vifile%%.*}`
mv *.jpg $viname.jpg
mv $viname.jpg /storage/码粗镇emulated/0/DCIM/迟粗FTP/
rm -f *
可以扩展到遍历整个根目录,不过要自己想想,方法很简单
批量给文件名加前缀的方法,也可以加后缀:
步骤1,下载工具软件后安装打开,然后将需要添加前缀的文件导入到软件中,也可以通闭塌过拖动文件到软件进行导入。
步骤2,这时候在左边可以看到设置界面,命名方式选择“插入”;然后在插入内容右边输入添加的前缀;最后插入位置选择“文件名头”(如果加后缀就选择“文件名尾”)。这时候在右边可以预览到新的文件名称了,可以随时修改随时预览。
步骤3,当设置好了之后就可以点击【开始重命名】按钮,启动软件程序了,处理完成后软件会d出“重命名祥手成功”的窗口。
步骤4,通过案例谨态嫌对比可以看出,修改后的文件名前面都添加了相同的前缀。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)