2012-08-14 65 views

回答

0

我會使用類似:

#!/bin/bash 

for file in *.txt 
do 
    echo "$file" "$(echo $file | sed -e 's/\.txt//')" 
done 

當然替換「.TXT」到任何文件擴展名要刪除,或兩個以上的引用,最好只使用$ 1(第一個傳遞給腳本的參數)。

Michael G.

+2

'$(ls * .txt)'應該是'* .txt','$ file'應該被引用爲'「$ file」'(以及'「$(echo ...)」') ,正則表達式應該是''s/\。txt $ //''('g'標誌表示「做多個替換」,這不是你想要的,你只需要一個)。 – 2012-08-14 02:20:37

+0

謝謝,我會更改代碼。 – mjgpy3 2012-08-14 02:24:14

+0

更一般的方法.. – Clavier 2012-08-14 02:25:00

0
for FILE in *.txt ; do mv -i "$FILE" "$(basename "$FILE" .txt)" ; done 
+0

它的工作原理。謝謝 !! – Clavier 2012-08-14 02:12:34

1
for i in *.txt; do mv "$i" "${i%.txt}"; done 
相關問題