2015-12-01 39 views
0

我有几个文件需要重命名。我想重命名以删除所有文件的扩展名(文件没有扩展名)。我更喜欢Linux中的“find and exec”命令,但我愿意接受其他解决方案。由于使用find和exec命令重命名文件以删除Linux中多个文件的扩展

Have 
file.txt 
file1.txt 
file2.txt 
file3. 

Want 
file 
file1 
file2 
file3 
+0

是'file3.'意外还是你想能够处理只有'.'作为扩展名的文件呢? –

+0

我想能够处理这样的文件 – user2008558

+0

查看更新后的答案。 –

回答

1

您可以rename命令:

rename 's/\.[a-z]*$//g' file* 

如果你想找到的目录下的所有文件子目录,然后你可以使用find命令:

find . -name 'file*' | xargs rename 's/\.[a-z]*$//g' 

根据文件可能的名字,你可以在重命名命令中调整正则表达式。


一个bash的解决办法是:

for fname in *.txt; do 
    [[ ! -e ${fname} ]] && continue 
    new=${fname%.*} 
    mv "$fname" "$new" 
done 

线[[ ! -e ${fname} ]] && continue防范场景时,有与.txt为扩展名的文件。

相关问题