elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BASH] Comprobar si existe archivo, para evitar reemplazarlo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BASH] Comprobar si existe archivo, para evitar reemplazarlo  (Leído 4,513 veces)
WaAYa HaCK

Desconectado Desconectado

Mensajes: 292


Arduino, Android and music


Ver Perfil
[BASH] Comprobar si existe archivo, para evitar reemplazarlo
« en: 22 Febrero 2012, 20:14 pm »

Hola! Tengo una simple línea en un script que hace esto:
Código
  1. #!/bin/sh
  2. mencoder out.ogg -o video.avi -ovc lavc -oac mp3lame
Me gustaría que se guardara en el directorio del script, que compruebe si en el directorio de guardado ya existe el video.avi, que renombre el video.avi recién creado como video_1.avi o similar, y que lo mueva al directorio de guardado.

Supongo que será algo de ls y grep, pero no tengo ni idea...
¿Alguien me dice qué tengo que hacer?

Gracias!


En línea

La cacatúa yoyó es nueva en el zoo!
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [BASH] Comprobar si existe archivo, para evitar reemplazarlo
« Respuesta #1 en: 24 Febrero 2012, 23:30 pm »

Hice una pequeña función que calcula cómo hay que guardarse en el directorio "guardado"

Código
  1. function getNextNameFile() {
  2. [ -e "./guardado/video.avi" ] && {
  3. valor=$(ls -1 guardado | grep -E "^video_[0-9]*.*$" | sed -s "s/^video_\([0-9]*\).*/\1/g" | tail -n1)
  4. [ -z "$valor" ] && {
  5. result=1
  6. } || result=$((valor + 1))
  7.  
  8. } || result=0
  9. }
  10.  
  11. getNextNameFile;
  12. if [ $result = 0 ]
  13. then
  14. mencoder out.ogg -o guardado/video.avi -ovc lavc -oac mp3lame
  15. else
  16. mencoder out.ogg -o guardado/video_${result}.avi -ovc lavc -oac mp3lame
  17. fi
  18.  

Este script checa primero si en la carpeta de guardado existe "video.avi", si existe calcula el siguiente, es decir, video_n.avi, sino existe lo guarda como video.avi.

Saludos.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
WaAYa HaCK

Desconectado Desconectado

Mensajes: 292


Arduino, Android and music


Ver Perfil
Re: [BASH] Comprobar si existe archivo, para evitar reemplazarlo
« Respuesta #2 en: 25 Febrero 2012, 00:41 am »

Muchas gracias! Has usado RegEx, ¿verdad?
En línea

La cacatúa yoyó es nueva en el zoo!
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [BASH] Comprobar si existe archivo, para evitar reemplazarlo
« Respuesta #3 en: 25 Febrero 2012, 00:42 am »

Sí, un poco con grep y sed.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comprobar si existe un archivo
Programación Visual Basic
{_The_Alwar_} 6 30,334 Último mensaje 20 Junio 2005, 01:50 am
por Slasher-K
Comprobar si un archivo en internet existe (SOLUCIONADO) « 1 2 »
Programación Visual Basic
Littl3 11 17,059 Último mensaje 14 Mayo 2008, 15:15 pm
por seba123neo
Duda para comprobar si existe clave del registro con .bat
Scripting
edunardo 3 8,367 Último mensaje 4 Septiembre 2008, 16:25 pm
por carlitos.dll
comprobar si existe un archivo « 1 2 »
Programación C/C++
MasterPunk 13 20,249 Último mensaje 9 Febrero 2012, 04:04 am
por wachi
Cómo comprobar si los puertos del router están cerrados para evitar a WannaCry
Seguridad
wolfbcn 0 4,328 Último mensaje 16 Mayo 2017, 21:36 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines