我有一个从文件名中删除括号的字符串。
$ find . -name "*.mkv" -exec rename 's/[\)\(]//g' {} \;
我是Linux和shell脚本的新手。我已经设法做了一个声明,删除目录文件名中的所有()文件。但当我遇到一个类似“惊人(2018)”的目录时,它显示了一个错误,即找不到任何目录。
请提供我需要的任何替代方案。我希望它是递归的。
提前谢谢

最佳答案

最好打电话给sed
find . -type f -iname "*.mkv" | \while IFS= read -r line; \do mv "$line" "$(printf %s "$line" | sed -re 's/(\[|\])//g')"; done;
输入:
'1[a].mkv' '2[a].mkv' '3[a].mkv'
输出:
1a.mkv 2a.mkv 3a.mkv

关于linux - 从Linux中所有文件名中删除括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51954620/

10-10 06:46