【发布时间】:2020-03-13 20:25:27
【问题描述】:
我一直在尝试递归地重命名名称以四位数结尾的文件夹。
例如,我有一个这样的文件夹名称:
this is the name 2004
我正在尝试将其重命名为:
this is the name (2004)
我尝试拆分名称的前缀和数字部分,但我无法将 mv 重命名为这些文件夹。
这是我目前尝试过的代码:
#!/bin/bash
F=$(find . -name '*[0-9]' -type d)
for i in "$F";
do
R2=$(echo "$i" | awk '{print $NF}')
R1=$(echo "$i" | sed 's/.\{4\}$//')
R3=$(echo "$R2" | sed -r "s/(^[0-9]+$)/(\1)/g")
mv "$i" "$R1 $R3"
# Even tried:
mv "\"$i"\" "\"$R2 $R3"\"
done
是否有人可以查看或/和建议一些指导以允许 mv 找到初始文件夹及其目标?
【问题讨论】:
-
要递归重命名的文件夹吗?像这样的结构:
str 123/str2 456/必须重命名为str (123)/str2 (456)?你需要那个find选项,让它从最深的目录遍历目录,它在人的某个地方...... -
是的,确实是这个想法。
标签: bash rename recursive-query parentheses mv