2010-05-04 27 views
7

Tengo algunos archivos en el mismo directorio (en UNIX sistema de archivos) que se parece a:Obtener nombre de archivo antes de la extensión

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

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

¿Cómo consigo la cuerda antes de la parte name o name2 utilizando algún comando shell?

es decir. la parte a.txt, b.xml, c.properties?

Respuesta

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

Niza sufijo opción. ¡Gracias! –

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

Si la convención de nombres es siempre foo.bar.other, entonces esto es bastante simple:

ls * | cut -d. -f1,2 
Cuestiones relacionadas