linux下rename函数用法,Linux学习之关于rename的用法

linux下的rename是有两个版本的,一个是C语言版本,一个是Perl语言版本,如何判断当前是哪个版本:

输入man rename 看到第一行是:

RENAME(1) Linux Programmer’s Manual RENAME(1)

这个就是C语言版本的,

而如果出现:

RENAME(1) Perl Programmers Reference Guide RENAME(1)

则是Perl版本的了

C语言版本格式:rename 原字符串 新字符串 文件名

example:当前目录下存在两个文件:a_01、a_02,若需要将文件名中的a替换为b,其他部分保持不变则应当键入rename a b a_*代码中最后一个参数代表以a_开头的所有文件

之前一直用这种方法做实验一直不成功,所以上网查询了下,再回去查看了下实验平台所使用的是Perl语言的版本,然后才恍然大悟。下面介绍Perl语言版本的用法。

Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名

example:仍然是刚刚那两个文件:a_01、a_02,若需要将文件名中的a替换为b,其他部分保持不变则应当键入rename 's/a/b/' a_*

Perl版本还有另外一种用法,通过rename 'y/a-z/A-Z/' 文件名来翻转文件名的大小写。

example:比如刚刚那两个文件:a_01、a_02,若需要将文件名中的a翻转为A,则应当键入rename 'y/a-z/A-Z/' a_*

当然不管是哪种方法都支持使用通配符以及正则表达式匹配,例如现在有5个文件file_1,file_2,file_3,file_4,file_5

将五个文件名中的file改成hello:rename 's/f.*e/hello/' file_?其中.是正则表达式中匹配除换行符以外的任意字符,*表示重复0次到多次,f.*e就代表以f开头e结尾的字符串(中间不管多少个字符),?是通配符表示可代替单个字符, 值得一提的是*在通配符中表示可代替多个字符

关于更多正则表达式的用法请参考正则表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值