我想一次性更改多个文件的文件类型。这些文件有 A.1、A.2、A.3... 并且我希望它们是 A.01、A.02、A.03...
这是一种奇怪的文件类型,但这就是我的程序输出结果的方式。
供您参考,我使用 Ubuntu 14.04。
先感谢您,
答案1
虽然在这个特殊情况下有更简单的方法,一般的我采取的方法是使用所需的字段宽度和填充重新打印数字后缀 - 要么使用 shell 的printf
函数
for f in A*; do
printf -v fnew '%s.%02d' "${f%.*}" "${f##*.}"
echo mv -v -- "$f" "$fnew"
done
(echo
检查无误后删除)或使用基于 perl 的rename
/prename
prename -vn -- 's/\.(\d+)$/sprintf ".%02d", $1/e' A*
(这次,删除n
才算真正重命名)。
答案2
我假设:
- 你只想在所有文件名
0
后插入.
A
代表 之前的内容.
,每次都是相同的,并且没有特殊字符(例如,只有一个.
)
如果确实如此,则很容易在所有文件名中用A.
替换。A.0
(但是,你绝对应该按照steeldriver说的做,因为毫无疑问这是一种完全优越的方法)
确保您位于文件所在的目录中(打开终端并cd
转到正确的目录,或在 Nautilus 中导航到该目录,然后右键单击并选择“在终端中打开”)ls
- 您应该会看到要重命名的文件。您可以使用for
循环
for f in A*; do mv "$f" "${f/A./A.0}"; done
或者更简单,使用rename
rename 's/A\./A.0/' A*