2010-05-04 6 views
7

J'ai quelques fichiers dans le même répertoire (dans le système de fichiers UNIX) qui ressemble à:Obtenir le nom de fichier avant l'extension

a.txt.name 
b.xml.name 
c.properties.name 

a.txt.name2 
b.xml.name2 
c.properties.name2 

Comment puis-je obtenir la chaîne avant la name ou name2 partie en utilisant une commande shell?

ie. le a.txt, b.xml, c.properties partie?

Répondre

9
$ basename a.txt.name .name 
a.txt 
+0

suffixe de Nice option. Merci! –

4
$ file="a.txt.name" 
$ file="${file%.*}" 
$ echo "$file" 
a.txt 
2

Si la convention de nommage est toujours foo.bar.other, alors c'est assez simple:

ls * | cut -d. -f1,2 
Questions connexes