zoukankan      html  css  js  c++  java
  • rename——不同版本号命令不同

    rename  arg1  arg2  arg3

    rename才是真正的批量重命名命令。而且他是3个参数,不是2个。

    arg1:旧的字符串

    arg2:新的字符串

    arg3:匹配要重命名的文件,可以使用3种通配符,*、?、[char],*表示任意多个字符,?表示单个字符,[char]匹配char单个自定的精确字符,可以填写任意字符,foo[a]*表示只匹配fooa开头的文件名,如果一个文件是foobcc.txt,是不会被匹配的。

    值的注意的是,此命令在不同的linux版本也有不同,Debian一系的操作系统别有用法。举例说明:

    比如/home下有两个文件 abbcc.txt, addbb.txt , a.txt

    我想把a替换为xxx,命令是这样的 : rename “a” “xxx” *.txt

    那么它会首先去匹配有哪些文件需要修改,这里凡是.txt后缀的文件都会被匹配,如果改成?.txt则只会匹配到一个文件,那就是a.txt。然后把匹配到的文件中的a字符替换为xxx,注意测试时abab.txt这样的,只会替换第一个a,有待再了解。

    说到Debian一系的操作系统,比如Ubuntu,这个命令这样使用是不对的,报错,向下面这样的:

    Bareword “a” not allowed while “strict subs” in use at (eval 1) line 1.

    经过Google之后发现有这样的说法:

    On Debian-based distros it takes a perl expression and a list of files. you need to would need to use:
    rename ‘s/foo/foox/’ *

    这里是一个perl表达式,好理解点说就是综合了前两个参数为1个,这样就只需要2个参数,而非上面所说的3个参数形式。

    所以在Ubuntu下执行上面举例的重命名时,命令是这样的:rename 's/a/xxx/’ *.txt

  • 相关阅读:
    机器学习之KNN算法学习笔记
    机器学习之决策树算法学习笔记
    RNN神经网络
    深度学习笔记-Tensorflow(一)
    CNN卷积神经网络-tensorflow
    个人喜欢的网址
    CSP2020游记
    题解 GDFZOJ 2020普转提十连测day5
    讲义 GDFZOJ 【38】 动态规划基础3
    题解 GDFZOJ 【2314】 东风谷早苗
  • 原文地址:https://www.cnblogs.com/Erma/p/6984211.html
Copyright © 2011-2022 走看看