[记录]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可以插入到指定位置,没有指定位置的话默认插入到规则的首部,由于匹配规则是从上往下,依次查找的,可能出现配置的规则冲突导致后续的规则不 ...
随机推荐
- activemq p2p方式
package ch02.chat; import java.io.Serializable; import javax.jms.Connection; import javax.jms.Connec ...
- bzoj 2716 天使玩偶(CDQ分治,BIT)
[题目链接] http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=29234 [题意] 询问当前点与已知点的最小曼哈顿距离. [思路 ...
- HW6.30
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- HDU-4639 Hehe 简单DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4639 简单递推题,呵呵,不多说... //STATUS:C++_AC_15MS_272KB #incl ...
- Android反编译基础(apktoos)--广工图书馆APK
更多精彩内容 :http://www.chenchuangfeng.com QQ:375061590 ------------------------------------------------- ...
- 垃圾回收(GC)的三种基本方式
垃圾(Garbage)就是程序需要回收的对象,如果一个对象不在被直接或间接地引用,那么这个对象就成为了「垃圾」,它占用的内存需要及时地释放,否则就会引起「内存泄露」.有些语言需要程序员来手动释放内存( ...
- [OC Foundation框架 - 4] NSString的导出
void exportString() { NSString *str = @"Hello, 坑爹"; NSString *path = @"/Users/hello ...
- Android模拟器访问本地的apache tomcat服务
1. 在官网http://tomcat.apache.org/上下载tomcat,根据自己的电脑下载相应的文件 2.将apache-tomcat-6.0.37-windows-x64.zip包解压到本 ...
- 【转】Android studio 导入github工程
http://blog.csdn.net/feixiaku/article/details/45155587/ 从github下载两个开源项目: PagerSlidingTabStrip | ...
- 2015北京网络赛 J Clarke and puzzle 求五维偏序 分块+bitset
Clarke and puzzle Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc20 ...