bash批量修改文件名称的方法小结(增加,去除,修改后缀)
一、加后缀
1.问题:同以目录下有海量以日期命名的文件,其中有的有后缀,有的以点结尾,如20020101.,20020102.,……,20020101.td,20020102.td……
要求: 把所有以点结尾的加上后缀.ts
我的方法:
#!/bin/bash
for files in `ls *.`
do
mv $files `echo "$filests" `
done
2. 同上
mv $files ${files}ts
3. 同上
mv $files `$files.ts|sed 's/\.//' `
4. file =>file.txt
mv $files $files.txt
5. *.04 => *04.txt
mv $files $(echo ${files}.txt|sed 's/\.//1')
或
mv $files `echo ${files}.txt|sed 's/\.//1' `
二、改后缀(.old => .new)
1. rename
rename .old .new *
2.
mv $files ${file%.old}.new
3.
mv $files `echo $files|tr .old .new`
4.
mv $files `echo $files|sed 's/\.old/\.new/' `
三、去后缀 (*.dat => *)
1. mv $files `echo $files |sed 's/\.dat//' `
2. mv $files `echo $files|tr .dat (4空格)`
四、改前缀 (re* => un*)
1. mv $files un${$files#re}
2. mv $files `echo $files | tr re un`
相关推荐
-
bash 编程中循环语句用法
1.if 是单分支语句,使用格式如下: if condition ; then statement -.. fi 2.if - else 是双分支语句,使用格式如下: if condition ; then statement -. else statement -. fi 3.if -elif-elif-else 是多分支语句,使用格式如下: if condition ; then statement -. elif condition ; then statement -.. elif co
-
使用bash shell删除目录中的特定文件的3种方法
我是一名Linux新用户.现在我需要清理一个下载目录中的文件,其实我就是想从-/Download/文件夹删去除了以下格式的文件外所以其它文件: 1.*.iso - 所有的iso格式的文件. 2.*.zip - 所有zip格式的文件. 我如何在一个基于Linux,OS X 或者 Unix-like 系统上的bash shell中删除特定的文件呢? Bash shell 支持丰富的文件模式匹配符例如: 1.* - 匹配所有的文件. 2.? - 匹配文件名中的单个字母. 3.[...] - 匹配封闭括
-
linux bash中too many arguments问题的解决方法
判断一个文件的内容是不是为空,使用语句: if test -z `cat filename` 当filename为空或者只有一行没有空格的字符串的时候,一切正常,反之,则会报:too many arguments,甚至是: binary operator expected之类的错误. 参考文章:http://www.ibm.com/developerworks/cn/linux/shell/bash/bash-2/index.html 原因分析:filename中的空格回车等迷惑了bash.如果
-
bash shell命令行选项与修传入参数处理
在编写shell程序时经常需要处理命令行参数,本文描述在bash下的命令行处理方式.选项与参数:如下命令行: 复制代码 代码如下: ./test.sh -f config.conf -v --prefix=/home -f为选项,它需要一个参数,即config.conf, -v 也是一个选项,但它不需要参数.--prefix我们称之为一个长选项,即选项本身多于一个字符,它也需要一个参数,用等号连接,当然等号不是必须的,/home可以直接写在--prefix后面,即--prefix/home,
-
Bash中数组的操作教程
前言 BASH只支持一维数组,但参数个数没有限制. 如声明一个数组: declare -a array (其实不用声明,按数组方式直接赋值给变量即可,BASH就知道那是数组) 一.定义数组 1. 使用[]操作符 names[0]='zrong' names[1]='jacky' 2. 使用()直接赋值 names=('zrong' 'jacky') # 或 names=([0]='zrong' [1]='jacky') 3. 使用declare -a定义数组.这种方法可以将一个空的变量定义成数组
-
linux BASH shell下设置字体及背景颜色
BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字符的显示颜色改为黑色 \e[31m 将字符的显示颜色改为红色 \e[32m 将字符的显示颜色改为绿色 \e[33m 将字符的显示颜色改为淡红色 \e[34m 将字符的显示颜色改为蓝色 \e[35m 将字符的显示颜色改为紫色 \e[36m 将字符的显示颜色改为淡蓝色 \e[37m 将字符的显示颜色改为灰色 \e[40m -- \e[47m 设置背景色 \e[40m 将背景色设
-
BASH 学习笔记小结
1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行 1.1.2 注释 在进行shell编程时,以#开头的句子表示注释,直到这一行的结束.我们真诚地建议您
-
bash scp command not found的解决方法
安装了centos6.0,由于选择了最小安装,很多包没有安装,因此一些常用的命令也不支持,如下:# scp -bash: scp: command not found 我的解决方法是:在一台运行正常的CentOS 5.6服务器上找到scp所在的包:##---以下命令在运行正常的CentOS 5.6上执行 复制代码 代码如下: # which scp /usr/bin/scp # rpm -qf /usr/bin/scp openssh-clients-4.3p2-72.el5 这么看来scp所在
-
Bash Shell 注释多行的几种方法
1.最简单方法 复制代码 代码如下: :<<BLOCK ....注释内容 BLOCK 把输入重定义到前面的命令,但是 : 是空命令,所以就相当于注释了. 如果注释中有反引号的命令就会报错,反引号部分不会被注释掉,例如 var=`ls -l` 就不会被注释掉. 2.解决注释中有反引号的问题 A.方法一 复制代码 代码如下: :<<BLOCK' ....注释内容 'BLOCK B.方法二 复制代码 代码如下: :<<'BLOCK ....注释内容 BLOCK' C.方法三
-
解决bash: mysql: command not found 的方法
root@DB-02 ~]# mysql -u root -bash: mysql: command not found 原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件. 首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令: # ln -s /usr/loc
随机推荐
- jquery和css3实现的炫酷时尚的菜单导航
- EasyUI框架 使用Ajax提交注册信息的实现代码
- 推荐Windows Vista安装图解教程第1/2页
- MyBatis学习教程(六)-调用存储过程
- 深入讲解Java编程中类的生命周期
- js 鼠标点击事件及其它捕获
- 浅析php设计模式之数据对象映射模式
- python通过定义一个类实例作为ftp回调方法
- 浅谈C/C++中的static与extern关键字的使用详解
- Bootstrap Multiselect 常用组件实现代码
- jQuery学习笔记之控制页面实现代码
- AsyncTask官方文档教程整理
- Windows下实现简单的libevent服务器
- javascript开发随笔二 动态加载js和文件
- Python设计模式之命令模式简单示例
- thinkphp3.2.0 setInc方法 源码全面解析
- CentOS6.9中搭建FTP服务器的方法
- C#基于HttpWebRequest实现发送HTTP请求的方法分析
- php使用pecl方式安装扩展操作示例
- servlet实现图片上传功能