用下划线替换文件名中的括号和空格

时间:2014-10-02 21:03:44

标签: linux shell

我使用此行删除文件夹名称

上的空格
find /tmp/ -depth -name "* *" -execdir rename 's/ /_/g' "{}" \;

有没有办法从文件名中删除SPACES和PARENTHESES并放置下划线?

例如,我有:

|-- a_dir
|   `-- (1) file with spaces and parentheses.pdf
`-- b_dir
    |-- (43) another file with spaces (1).pdf
    `-- (132) yet another file with spaces (3343).pdf

必须成为

|-- a_dir
|   `-- 1_file_with_spaces_and_parentheses.pdf
`-- b_dir
    |-- 43_another_file_with_spaces_1.pdf
    `-- 132_yet_another_file_with_spaces_3343.pdf

1 个答案:

答案 0 :(得分:4)

您可以使用:

find /tmp/ -depth -name "*[ ()]*" -execdir rename 's/[ )]/_/g; s/\(//g' "{}" \;