嗨有一种简单的方法可以重命名一堆文件,如:
A_16-25-55-313.txt
和
B_16-25-55-313.txt
以便文件夹中的所有文件看起来像:
A_16-25.txt
和
B_16-25.txt
在这个例子中,我必须摆脱扩展前的最后7个字符。 我使用的是OS X终端 并试过像:
for i in *.txt do set fName==$i
do mv $fName $fName:~0,-7.txt
哪个不起作用,并且:
for i in *
do
j=`echo $i | sed -e ’s/.......$//‘`
mv $i $j
done
哪个也不行。
答案 0 :(得分:1)
不确定您使用的bash
是什么参考,但以下是您想要的:
for i in *.txt; do
# Get the filename minus the .txt suffix
drop_ext=${i%.txt}
# Drop the last seven characters, then readd the suffix
fName=${drop_ext%???????}.txt
mv "$i" "$fName"
done
实际上,如果你知道后缀是4个字符,你可以在添加后缀之前立即删除最后11个字符。
for i in *.txt; do
mv "$i" "${i%???????????}.txt"
done