我有名为日期的子目录,例如09 January 2020
.我使用终端命令重命名了所有目录,以用连字符替换空格:
$ for i in *; do mv "$i" "`echo $i | sed -e 's, ,-,g'`"; done
现在我得到名为 的子目录09-January-2020
。
我想反转日期顺序并获取名为 的子目录2020-January-09
。我想使用与上面相同的 for 循环但不同的 sed 命令来反转子目录名称中日期格式的顺序。
答案1
用于sed
为目录创建新名称:
for d in *; do
echo mv -- "$d" "$(echo "$d" | sed -E 's/(.*)-(.*)-(.*)/\3-\2-\1/')"
done
括号内的匹配部件将以相反的顺序重新用于替换。echo
测试后删除第一个。