2012-08-14 63 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 
相关问题