Linux学习之批量修改文件名
1. 通过专业的改名命令rename实现
[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Nov : stu_102999_1_finished.jpg
-rw-r--r-- root root Nov : stu_102999_2_finished.jpg
-rw-r--r-- root root Nov : stu_102999_3_finished.jpg
-rw-r--r-- root root Nov : stu_102999_4_finished.jpg
-rw-r--r-- root root Nov : stu_102999_5_finished.jpg
[root@oldboy oldboy]# rename "finished" "" * ==>执行批量改名
[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Nov : stu_102999_1_.jpg
-rw-r--r-- root root Nov : stu_102999_2_.jpg
-rw-r--r-- root root Nov : stu_102999_3_.jpg
-rw-r--r-- root root Nov : stu_102999_4_.jpg
-rw-r--r-- root root Nov : stu_102999_5_.jpg
拓展下:改扩展名的方法
[root@oldboy oldboy]# rename .jpg .oldboy *
[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Nov : stu_102999_1_.oldboy
-rw-r--r-- root root Nov : stu_102999_2_.oldboy
-rw-r--r-- root root Nov : stu_102999_3_.oldboy
-rw-r--r-- root root Nov : stu_102999_4_.oldboy
-rw-r--r-- root root Nov : stu_102999_5_.oldboy
2. ls结合awk实现
[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Nov : stu_102999_1_finished.jpg
-rw-r--r-- root root Nov : stu_102999_2_finished.jpg
-rw-r--r-- root root Nov : stu_102999_3_finished.jpg
-rw-r--r-- root root Nov : stu_102999_4_finished.jpg
-rw-r--r-- root root Nov : stu_102999_5_finished.jpg
[root@oldboy oldboy]# ls |awk -F 'finished' '{print $0}'
stu_102999_1_finished.jpg
stu_102999_2_finished.jpg
stu_102999_3_finished.jpg
stu_102999_4_finished.jpg
stu_102999_5_finished.jpg
[root@oldboy oldboy]# ls |awk -F 'finished' '{print $1}'
stu_102999_1_
stu_102999_2_
stu_102999_3_
stu_102999_4_
stu_102999_5_
[root@oldboy oldboy]# ls |awk -F 'finished' '{print $2}'
.jpg
.jpg
.jpg
.jpg
.jpg
[root@oldboy oldboy]# ls |awk -F 'finished' '{print $1$2}'
stu_102999_1_.jpg
stu_102999_2_.jpg
stu_102999_3_.jpg
stu_102999_4_.jpg
stu_102999_5_.jpg
[root@oldboy oldboy]# ls |awk -F 'finished' '{print "mv "$0" "$1$2" "}'|/bin/bash
[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Nov : stu_102999_1_.jpg
-rw-r--r-- root root Nov : stu_102999_2_.jpg
-rw-r--r-- root root Nov : stu_102999_3_.jpg
-rw-r--r-- root root Nov : stu_102999_4_.jpg
-rw-r--r-- root root Nov : stu_102999_5_.jpg
3. shell脚本for循环加变量的部分截取方法
[root@oldboy oldboy]#ls -l
total
-rw-r--r-- root root Nov : change_file_name.sh
-rw-r--r-- root root Nov : stu_102999_1_finished.jpg
-rw-r--r-- root root Nov : stu_102999_2_finished.jpg
-rw-r--r-- root root Nov : stu_102999_3_finished.jpg
-rw-r--r-- root root Nov : stu_102999_4_finished.jpg
-rw-r--r-- root root Nov : stu_102999_5_finished.jpg
[root@oldboy oldboy]#cat change_file_name.sh
#!/bin/sh
# oldboy QQ:
for file in `ls ./*.jpg`
do
/bin/mv $file `echo "${file%finished*}.jpg"` #这里就是变量的截取新方法,在老男孩的shell编程课程中会讲到此用法。
done
[root@oldboy oldboy]#sh change_file_name.sh
[root@oldboy oldboy]#ls -l
total 4
-rw-r--r-- 1 root root 114 Nov 14 00:21 change_file_name.sh
-rw-r--r-- 1 root root 0 Nov 14 00:23 stu_102999_1_.jpg
-rw-r--r-- 1 root root 0 Nov 14 00:23 stu_102999_2_.jpg
-rw-r--r-- 1 root root 0 Nov 14 00:23 stu_102999_3_.jpg
-rw-r--r-- 1 root root 0 Nov 14 00:23 stu_102999_4_.jpg
-rw-r--r-- 1 root root 0 Nov 14 00:23 stu_102999_5_.jpg
特别提示:本脚本和文件在同一目录
4. shell脚本for循环结合sed实现
[检查数据]
[root@oldboy oldboy]# ll
total
-rw-r--r-- root root Oct : oldboy_modi_file.sh
-rw-r--r-- root root Oct : stu_102999_1_finished.jpg
-rw-r--r-- root root Oct : stu_102999_2_finished.jpg
-rw-r--r-- root root Oct : stu_102999_3_finished.jpg
-rw-r--r-- root root Oct : stu_102999_4_finished.jpg
-rw-r--r-- root root Oct : stu_102999_5_finished.jpg [开发脚本]
[root@oldboy oldboy]# cat oldboy_modi_file.sh
#!/bin/sh
for file in `ls ./*.jpg`
#shell脚本for循环,file为变量依次取得ls ./*.jpg的结果文件名
do
mv $file `echo $file|sed 's/finished//g'`
#使用mv命令进行更改文件,新的文件名字符串拼接是本题的重点。
done
#特别提示:通过本题,可以学习到for循环的使用,及mv、sed等命令的使用 [执行脚本]
[root@oldboy oldboy]# sh oldboy_modi_file.sh [检查结果]
[root@oldboy oldboy]# ll
total 4
-rw-r--r-- 1 root root 85 Oct 2 12:54 oldboy_modi_file.sh
-rw-r--r-- 1 root root 0 Oct 2 12:50 stu_102999_1_.jpg
-rw-r--r-- 1 root root 0 Oct 2 12:50 stu_102999_2_.jpg
-rw-r--r-- 1 root root 0 Oct 2 12:50 stu_102999_3_.jpg
-rw-r--r-- 1 root root 0 Oct 2 12:50 stu_102999_4_.jpg
-rw-r--r-- 1 root root 0 Oct 2 12:50 stu_102999_5_.jpg
转自老男孩博客:http://oldboy.blog.51cto.com/2561410/711342
Linux学习之批量修改文件名的更多相关文章
- linux rename命令批量修改文件名
修改文件名可以用mv命令来实现 mv filename1 filename2 1 但如果批量修改还是使用rename命令更为方便 现在我们有a b c d 四个文件 增加后缀 rename 's/$/ ...
- 【Linux】Shell批量修改文件名
修改文件名,替换中间字符: 例如:ABC_define_EFG.jpg,要把中间的define替换成argument: 用如下脚本即可: for var in *; do mv "$var& ...
- linux下C++遍历文件夹下的全部文件;Windows/Linux下C++批量修改文件名,批量删除文件
Linux下 C++遍历目录下所有文件 rename(image_path.c_str(), image_path_new.c_str()); remove(image_path_move.c_str ...
- Linux利用sed批量修改文件名
初始文件名 # ls -lh total 5.5G -rw-r--r-- 1 root root 193K Sep 28 09:38 20180908.txt drwxr-xr-x 2 root ro ...
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键 批量修改文件名等
http://blog.sina.com.cn/s/blog_62e7fe670101dg9d.html linux下二进制文件查找: strings 0000.ts | grep -o " ...
- linux批量修改文件名的shell脚本
linux中批量修改文件名的shell脚本代码,主要是使用了rename,结合shell,喜欢的朋友可以参考下 使用 rename 命令 ======================== NAME ...
- Linux下批量修改文件名(rename)
原文地址: http://blog.csdn.net/sea_shore/article/details/6102437 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修 ...
- linux 批量修改文件名 文件名只保留部分,去掉部分
问题:linux系统中文件名包含中文,导致页面访问不了文件.就是上条博客中的解决方法二遗留问题. 文件名中有以下格式:TC2_诺而达铜管(中山)有限公司.pdf ,要改为TC2.pdf,去掉中文部分 ...
- shell脚本:批量修改文件名
参考链接1:shell脚本:批量修改文件名(删除文件名中字符) 参考链接2:linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 ) 参考链接3:每天一个linux ...
随机推荐
- protobuf--数据序列化及反序列化
ProtoBuf是一种灵活高效的独立于语言平台的结构化数据表示方法,可用于表示通信协议和数据存储等各方面,与XML相比,ProtoBuF更小更快更简单.你可以用定义自己ProtoBuf的数据结构,用P ...
- jquery-ajax-php(内容点赞并进行cookie限制实现)
1.模板页html例如以下: 2.模板页的jquery里的ajax实现例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T ...
- DataGridView使用技巧八:设置单元格的ToolTip
ToolTip属性用来设置当鼠标移动到单元格上面时的提示内容. DataGridView.ShowCellToolTips=True的情况下,单元格的ToolTip可以表示出来.对于单元格窄小,无法完 ...
- java-事务-案例
项目结构: 数据库: /* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.5.53 : Database - threadlocal ************** ...
- English Sentenses【no use】
1.Sorry if I might sound arrogant or offensive. 2.Any further question? 3.How dare you! 4.Try it if ...
- 转载:erlang程序优化点的总结
erlang程序优化点的总结(持续更新) 转自:http://wqtn22.iteye.com/blog/1820587 转载请注明出处 注意,这里只是给出一个总结,具体性能需要根据实际环境和需要来确 ...
- xshell-常用指令汇总 linux 常用指令
suse linux 常用命令 (1)命令ls——列出文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 l ...
- jquery.attach附件上传jquery插件
html: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta http-equiv=&qu ...
- 简单html弹窗
css: <style type="text/css"> .moneyrecord { display:none; border:0.5em solid #00AAEE ...
- Hibernate学习(1):查询demo
1.数据库(mysql)创建脚本 DROP TABLE IF EXISTS role; CREATE TABLE IF NOT EXISTS `role`( `id` ) NOT NULL AUTO_ ...