将字符串插入具有不同扩展名的文件名

时间:2015-10-12 22:55:34

标签: linux string bash

我在目录中有许多不同类型的文件:file,file0,file.txt,file.jpg等。

有些有扩展,有些没有。

我想通过在其中插入'final'来重命名目录中的文件。

所以它们将显示为:filefinal,file0final,filefinal.txt,filefinal.jpg等。

我想,为了处理带有和不带扩展的文件的存在,我将不得不使用一些if语句,也许不是。为了处理扩展名的文件我一直在想,也许我可以确定小数的索引,然后在此之前添加'final'字符串。但我不知道该怎么做或者它是最好的方法。

任何提示都非常感谢。

1 个答案:

答案 0 :(得分:1)

我选择采用更安全的方法,而不是冒险尝试一些内容。

  1. 将所有文件名转储到文件中。例如:

    找到。 > allMyFiles

  2. 使用'vi allMyFiles'并复制名称

    %S /.*/"&安培;” “&安培;”/克

  3. 添加替换

    %s /(。)(.. $)/ \ 1final \ 2 / g

  4. 检查您的文件并删除明显的错误:

    “”。 “最后。” << --- remove

  5. 添加mv命令

    %s / ^ / mv / g

  6. 更改以执行权限并执行脚本。

    chmod 700 allMyFiles ./allMyFiles