Foros del Web » Administración de Sistemas » Unix / Linux »

Comenzando con bash

Estas en el tema de Comenzando con bash en el foro de Unix / Linux en Foros del Web. Hola, estoy iniciandome en esto de los scripts en linux, y realmente me esta costando, espero estar publicandolo en el lugar correcto. Como se haría ...
  #1 (permalink)  
Antiguo 26/09/2010, 19:58
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 17 años, 2 meses
Puntos: 0
Comenzando con bash

Hola, estoy iniciandome en esto de los scripts en linux, y realmente me esta costando, espero estar publicandolo en el lugar correcto. Como se haría para dado un nombre dado un nombre de un archivo obtener el nombre y la extension???!! es algo simple lo que quiero hacer pero esta pavada me tiene totalmente trabado...

osea, yo tengo un programa que va llamando a una funcion y como parametro le envia el nombre del archivo y dependiendo de la extension es lo que debe hacer, por ejemplo este seria algo asi como el pseudocodigo

procesarArchivo(){
//obtengo el nombre del archivo sin la extension
/obtengo la extension
if(extension == 'TXT')
ejecuto "funcionX nombreSinExtension.txt//le cambio la extension por txt
else
ejecuto "funcionX nombreConExtension.txt"//le agrego la extension, pero en el nombre se conserva la extension vieja tambien...
}

espero me puedan ayudar.. muchas gracias
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.
  #2 (permalink)  
Antiguo 28/09/2010, 17:45
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 11 meses
Puntos: 36
Respuesta: Comenzando con bash

Código BASH:
Ver original
  1. #!/bin/bash
  2.  
  3. archivo="archivo.ext"
  4.  
  5. extension=${archivo##*.}
  6. nombre=${archivo%.*}
  7.  
  8. echo "${extension}.${nombre}"
  9. # Salida: ext.archivo
__________________
I ♥ The Music!
  #3 (permalink)  
Antiguo 28/09/2010, 17:49
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 11 meses
Puntos: 36
Respuesta: Comenzando con bash

No puedo editar mi mensaje anterior (y me arrojó un mensaje de la BD al enviar). Donde dice "nombre=${archivo%.*}" quedaría mejor si fuese "nombre=${archivo%%.*}".

Otras opciones: puedes ver el comando cut, awk y basename
__________________
I ♥ The Music!
  #4 (permalink)  
Antiguo 29/09/2010, 07:35
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 11 meses
Puntos: 19
Respuesta: Comenzando con bash

Yo, intentaría no fiarme de las extensiones de los ficheros ,(se usa mucho en win esto de las extensiones), y comprobaría si realmente la extensión de un fichero indica lo que dice, es decir para saber si archivo.ext es un fichero de texto o .txt (ascii), usaria el comando file:

root@ubuntu# file fichero.txt
fichero.txt: ASCII text

salu2
  #5 (permalink)  
Antiguo 29/09/2010, 08:27
Avatar de johnnygomez  
Fecha de Ingreso: octubre-2007
Mensajes: 166
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Comenzando con bash

Gracias!!! mil gracias, no lo podia sacar, estoy leyendo un manual de bash gigante y no me daba el tiempo...
__________________
Quien no encuentra ninguna falla en sí mismo, necesita una segunda opinión.

Etiquetas: bash
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:47.