我可以使用“重命名”命令将缺失的字符添加到当前目录中所有文件名,操作步骤如下:
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
解决这个问题怎么样(优缺点)?