[记录]Ubuntu下,使用Shell,简单替换有规律的文件名称
因工作中需要将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
#!/bin/ksh
ls *.png | while read name
do
filename=${name#Sprite }
echo ${filename}
done
~
~
测试替换掉"Sprite ",
运行:sh myname.sh,结果是:

嗯,这个文件名称是我自己想要的,我尝试将"echo ${filename}"替换为"echo mv ${name} ${filename}"
#!/bin/ksh
ls *.png | while read name
do
filename=${name#Sprite }
echo mv $name ${filename}
done
~
运行: sh myname.sh,结果是:

语法正确,将echo去掉,,提示

参考了1的echo语法,才发现是少了""号
#!/bin/ksh
ls *.png | while read name
do
filename=${name#Sprite }
mv "$name" "${filename}"
done
再次运行: sh myname.sh,再看文件夹,替换成功。
之前的:

替换之后的:

[记录]Ubuntu下,使用Shell,简单替换有规律的文件名称的更多相关文章
- 记录Ubuntu下使用docker使用
关键词:docker.Dockerfile等等. 这里主要记录Ubuntu下docker使用细节. 首先是如何安装,然后如何创建docker镜像.搭建docker服务器.运行使用docker. 1. ...
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
0:前言: 这两天一直在研究用android的jni调用第三方库,上网搜方法,但是都是泛泛而谈,没有demo,经过我几番折磨,写了n多的helloword工程,总是不成功,工程名字也就由helloow ...
- Ubuntu下gcc的简单使用
一直不怎么用gcc,今天看了大神们的笔试题,不得不动手开始写程序了,差距那个大啊. gcc是ubuntu下的终端编译器,可以用来写C.C++的程序,简单用法如下: vim name1.c 先用vim打 ...
- [问题记录]Ubuntu下chmsee安装失败的解决
日期:2016年2月26日 一直在找Ubuntu下查看chm的工具但是普遍不理想,发现在deepin中的chmsee相对比较好,但是直接执行网上的sudo apt-get install chmsee ...
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序(转)
本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的javah命令,第二种为整合javah到eclipse里面.推荐第二种方式,方便快捷,随时修改随时生成 0:前提和条件: 1:u ...
- [转]ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
转载自:http://blog.csdn.net/jiuyueguang/article/details/9404237 本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的jav ...
- Linux之Ubuntu下如何查看已安装的软件/库文件【摘抄】
本文属于实用性质,且属于摘抄别处,出自:[Ubuntu 下如何查看已安装的软件](http://blog.csdn.net/m1205979825/article/details/40855583) ...
- Ubuntu下 QT添加外部链接库(.so文件)示例
参考:https://blog.csdn.net/KKALL1314/article/details/81915354 https://forum.qt.io/topic/80301/file-not ...
- Ubuntu下Iptables的简单运用,开放/关闭端口,禁止/允许IP或IP段访问...
首先添加规则有两个参数:-A和-I,其中-A是添加到规则的末尾:-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部,由于匹配规则是从上往下,依次查找的,可能出现配置的规则冲突导致后续的规则不 ...
随机推荐
- #pragma alloc_text 与 ALLOC_PRAGMA
百度标题中的两部分,可以找到很多文章,现将收集到的其中两篇整理如下: 转载链接:http://hi.baidu.com/billbeggar/item/c378e2ea39a5daeffa42bada ...
- 标准的TCP/IP工业以太网-EtherNet/IP
标准的TCP/IP工业以太网-EtherNet/IP 徐智穹以太网具有传输速度高.兼容性好.应用广泛等方面的优势,支持几乎所有流行的网络协议,其中 ...
- 浅谈Javascript中默认参数值的设置
第一种: 1: function test(a,b){ 2: var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 3: var b = argu ...
- python学习之copy模块
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象.2. copy.deepc ...
- c++ 观察者模式
观察者模式之比喻: 有家公司,老板经常不按时上班,于是员工就可以在老板来之前的那段时间娱乐一下,但是又过的是心惊胆战,怕 老板随时出现:这是观察者模式就起作用了:公司有个前台,她总是第一个看到老板进门 ...
- decorview that was originally added here or java.lang.IllegalArgumentException: View not attached to window manager
使用Dialog的时候,没少出现下面这两个报错 12-11 17:47:49.776: E/WindowManager(11461): android.view.WindowLeaked: Activ ...
- MSSQLSERVER数据库- 一条代码搞定单表备份表结构和表数据
在百度上找到的,很实用这个容易操作,不就两张表,我的建议就是备份表带上日期,以便以后要恢复数据的时候,可以快速找到他,这样备份是表结构和数据一起处理.select * into share_20090 ...
- JavaScript 原型继承开端
1.原型继承本质 就javascript对象系统的实现来讲,对象并没有原型,而构造器有原型(构造器.prototype指向其原型).对象只有构造自某个原型的说法,并没有持有某个原型的说法. ...
- centos6.2安装jdk7
首先在Vmware下安装好Centos6.2,下载好jdk7文件,tar包安装 1 wget http://download.oracle.com/otn-pub/java/jdk/last-vers ...
- SQLyog破解版:SQLyog MySQL GUI 11.2.4-0 Ultimate中文版 带序列号【转载】
SQLyog 是一个易于使用的.快速而简洁的图形化管理MYSQL数据库的工具,目前(2013年9月11日)最新版为:SQLyog Ultimate – MySQL GUI v11.24,本站已亲测比较 ...