[记录]Ubuntu下,使用Shell,简单替换有规律的文件名称
2023-09-11 14:20:10 时间
因工作中需要将Flash转为Html5,并且要有动画效果,我将Flash的组件导出Png序列,然后将Png序列拼接成一张雪碧图(Sprite),名字为在生成雪碧图可以排序,需要改成数字名称。
而名字是可以在导出的时候进行设置的,想到这个的时候,两行泪水从眼中花落T_T,现在才发现,不过我清楚如何替换了.
文件名格式:Sprite 590000.png
文件夹文件的图片名称是:Sprite 590000.png至Sprite 590056.png
需求是将:Sprite 590000.png替换成590000.png
参考下面两个链接之后:
先是参考第一个,得出的myname.sh文件是:
#!/bin/ksh ls *.png | while read name do filename=${name%/*} base=${name##*/} ext=${base##*.} echo ${filename} echo ${base} echo ${ext} done
得到的结果是:
发现filename和base的值是一样的
把base,ext的代码都删除掉
看参考2中,有提到
我們可以用 ${ } 分別替換獲得不同的值:
${file#*/}:拿掉第一條 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt
1 #!/bin/ksh 2 ls *.png | while read name 3 do 4 filename=${name#Sprite } 5 echo ${filename} 6 done 7 ~ 8 ~
测试替换掉"Sprite ",
运行:sh myname.sh,结果是:
嗯,这个文件名称是我自己想要的,我尝试将"echo ${filename}"替换为"echo mv ${name} ${filename}"
1 #!/bin/ksh 2 ls *.png | while read name 3 do 4 filename=${name#Sprite } 5 echo mv $name ${filename} 6 done 7 ~
运行: sh myname.sh,结果是:
语法正确,将echo去掉,,提示
参考了1的echo语法,才发现是少了""号
1 #!/bin/ksh 2 ls *.png | while read name 3 do 4 filename=${name#Sprite } 5 mv "$name" "${filename}" 6 done
再次运行: sh myname.sh,再看文件夹,替换成功。
之前的:
替换之后的:
相关文章
- Ubuntu 14.04安装语言包后无法选择汉语问题解决
- Ubuntu 13.04 系统管理初探
- Pinta 1.6发布!在 Ubuntu 和 Linux Mint 上安装
- ubuntu 18.04 64bit下如何安装python开发工具jupyter
- 【Ubuntu】Windows 远程桌面连接ubuntu及xrdp的一些小问题(远程桌面闪退、连接失败、tab补全功能,无菜单栏,error - problem connecting )【转】
- 在Ubuntu 18.04系统上安装Pydio Cells详细图文教程
- ubuntu 20.10 服务器虚拟机环境搭建(jdk、mysql、nginx、redis)
- Ubuntu 18.04在已经安装Docker CE后如何安装NVIDIA-Docker,以使docker容器内可以使用宿主机显卡
- Homstead ubuntu 系统pip3的安装
- Ubuntu 安装php mcrypt
- ubuntu下安装jre
- AT&T联盟Ubuntu,开放网络大步走
- 【linux】Ubuntu中shell脚本无法使用source的原因及解决方法
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---40
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---37
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---24
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---21
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---10
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---41
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---22
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---13
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---07
- Ubuntu 16.04 设置MySQL远程访问权限
- Flutter ubuntu 环境搭建