2015-09-08 40 views
0

您好一种简单的方法来重命名像一堆文件:OSX终端删除文件名的最后7个字符是

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

在OSX上有'rename'吗? – 123

回答

0

不知道你使用的是什么基准为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 
+0

thx的工作,你能告诉我为什么这个工程时,我一行一行地进入终端,但不是当我做一个.sh或.command文件? '第2行:意外的EOF,同时寻找匹配的'''''和第4行:语法错误:意外的文件末尾' –

+0

我想说你在某处丢失了一个引号,但很难说没有看到你的更多代码 – chepner

+0

没有你在哪里我错过了代码中的一些东西:-) –

相关问题