如何将文件和/或目录中的连字符更改为句点

如何将文件和/或目录中的连字符更改为句点

我正在尝试在 linux/bash 中执行此操作。我有多个目录。我不介意单独执行每个目录,因为只有几个。在每个目录中,都有文件和文件夹,其名称如下...

7-11 WSUS on workstations.png
7-12 1711-pen-FINAL-02_enc.pdf
12-12.txt
7-13.2 AD User selection.xlsx
7-14.2 Server selection.xlsx
7-14 it-vm21-1.png
12.14 it-vm21.png
7.14 Syslog message from 10-35-1-91.doc
7.14 Syslog message from 10-35-1-91.msg
7-16.2 admin request selection.xlsx
7-17.2 Employee hire selection.xlsx
7-17 Contractor List.xlsx

最初,我希望这仅适用于文件,但如果需要,我也想知道如何使其适用于包含目录。我想将第一个连字符替换为句点,这样上面的列表看起来就会像这样。

7.11 WSUS on workstations.png
7.12 1711-pen-FINAL-02_enc.pdf
12.12.txt
7.13.2 AD User selection.xlsx
7.14.2 Server selection.xlsx
7.14 it-vm21-1.png
12.14 it-vm21.png
7.14 Syslog message from 10-35-1-91.doc
7.14 Syslog message from 10-35-1-91.msg
7.16.2 admin request selection.xlsx
7.17.2 Employee hire selection.xlsx
7.17 Contractor List.xlsx

不知道从哪里开始。任何帮助都将不胜感激!

答案1

使用rename命令重命名所有内容:

rename -n 's/-/\./' *

对于文件:

find -maxdepth 1 -type f -exec rename -n 's/-/\./' {} +

对于目录:

find -maxdepth 1 -type d -exec rename -n 's/-/\./' {} +

-n当您确定该选项适合您时,请从命令中删除该选项。
您也可以-maxdepth根据需要进行更改。

相关内容