我可以使用“重命名”命令将缺少的字符添加到当前目录中的所有文件名中,如下所示:
echo "Renaming files..."
rename -v "s/^abcd124(.+)/abcd1234$1/" *.wav.gz;
echo "Done."
但是,我想对当前目录及其所有子目录执行此操作。我试过这个:
echo "Renaming files..."
for dir in $(find ./ -type d); do
rename -v "s/^$dir\/abcd124(.+)/$dir\/abcd1234$1/" *.wav.gz;
done;
echo "Done."
但是,如果$dir
变量包含这些特殊字符中的任何一个:{}[]()^$.|*+?\
那么它们不能用 \ 正确转义,我的脚本会失败。
解决这个问题的最佳方法是什么?另外,你们认为用什么awk
来解决这个问题(优点/缺点?)