2015-09-08 42 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

沒有你在哪裏我錯過了代碼中的一些東西:-) –

相關問題