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

Tratar variable Shell Script

Estas en el tema de Tratar variable Shell Script en el foro de Unix / Linux en Foros del Web. Hola. Tengo un script que es el siguiente: Código: ffmpeg -pass 1 -passlogfile movieLog.txt -i "$1" -b 750000 -vcodec mpeg4 -s 640x360 -acodec libfaac -ac ...
  #1 (permalink)  
Antiguo 23/12/2010, 05:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 169
Antigüedad: 14 años, 11 meses
Puntos: 3
Tratar variable Shell Script

Hola.

Tengo un script que es el siguiente:


Código:
ffmpeg -pass 1 -passlogfile movieLog.txt -i "$1" -b 750000 -vcodec mpeg4 -s 640x360 -acodec libfaac -ac 2 -ab 96000 "$2"
Le llegan dos argumentos, $1 y $2, que son nombres de archivo, por ejemplo video.flv y video.mp4 .

Me gustaría saber cómo se le puede quitar al contenido de $1 la extensión. Es decir, si $1 tiene el valor video.flv, que pase a tener el valor video . ¿Qué función shell script habría que utilizar?

Muchas gracias por adelantado.
__________________
http://felinfo.blogspot.com/
  #2 (permalink)  
Antiguo 23/12/2010, 08:46
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: Tratar variable Shell Script

Hola:

Intenta algo como esto:
Código BASH:
Ver original
  1. ffmpeg -pass 1 -passlogfile movieLog.txt -i "${1%.???}" -b 750000 -vcodec mpeg4 -s 640x360 -acodec libfaac -ac 2 -ab 96000 "$2"

o incluso, si quieres mantener el mismo nombre del archivo (video.flv -> video.mp4):
Código BASH:
Ver original
  1. ffmpeg -pass 1 -passlogfile movieLog.txt -i "${1%.???}" -b 750000 -vcodec mpeg4 -s 640x360 -acodec libfaac -ac 2 -ab 96000 "${1%.???}.mp3"
en ese caso solo se le pasaría 1 parámetro al script.

slds;

Nup_

Última edición por nup_; 23/12/2010 a las 09:03
  #3 (permalink)  
Antiguo 23/12/2010, 09:25
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: Tratar variable Shell Script

Código:
man basename
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #4 (permalink)  
Antiguo 23/12/2010, 13:30
 
Fecha de Ingreso: mayo-2009
Mensajes: 169
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Tratar variable Shell Script

Gracias a los dos por contestar.

nup_, me ha funcionado perfecto, era lo que estaba buscando.

ociomax, he probado el comando basename pero no quita la extensión. Poniendo "basename video.flv" me devuelve "video.flv" .

Saludos y Feliz Navidad!
__________________
http://felinfo.blogspot.com/
  #5 (permalink)  
Antiguo 23/12/2010, 14:37
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: Tratar variable Shell Script

Hola:
Si quieres utilizar basename busca su entrada en el manual como te sugirió ociomax (man basename) o en Internet.
Ahí vas a ver q necesitas pasar como parámetro el sufijo q deseas remover del nombre del fichero.
Ejemplo:
Código BASH:
Ver original
  1. basename "video.flv" .flv

Quedaría asi:
Código BASH:
Ver original
  1. ffmpeg -pass 1 -passlogfile movieLog.txt -i `basename $1 .flv` -b 750000 -vcodec mpeg4 -s 640x360 -acodec libfaac -ac 2 -ab 96000 "$2"

Nota: el sufijo pasado a basename es case sensitive, no es lo mismo .flv que .FLV

slds;

Nup_
  #6 (permalink)  
Antiguo 23/12/2010, 17:01
 
Fecha de Ingreso: mayo-2009
Mensajes: 169
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Tratar variable Shell Script

Aish! se me había pasado usar el sufijo como parámetro. Ahora si funciona.

Muchas gracias nup_
__________________
http://felinfo.blogspot.com/

Etiquetas: shell, variables
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:52.