从 fish 或 bash 中的多个文件夹名称中删除文本

从 fish 或 bash 中的多个文件夹名称中删除文本

有一个带有子文件夹的文件夹。我想从每个文件夹名称中删除 [garbage.com]。我想删除 ] 后面的空格

现在

$ ls 
 
[ garbage.com ] happy  
[ garbage.com ] Sad   
[ garbage.com ] confused  
dog  
cat  
rat  
.....

脚本之后

$ ls  

happy  
Sad  
confused  
dog  
cat  
rat  

我尝试了查找命令,但是 [] 和空格让我感到困惑。

答案1

请尝试以下操作:

rename "s/\[\ garbage\.com\ \]\ //" -n *

-n 选项将仅打印计划的更改。删除 -n 可真正重命名目录。请注意,这不仅会重命名目录,还会重命名文件。

要仅重命名目录,请使用以下命令:

find . -type d -exec rename -n "s/\[\ garbage\.com\ \]\ //" {} ";"

相关内容