Hola! Tengo una simple línea en un script que hace esto:
#!/bin/sh
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!
Hice una pequeña función que calcula cómo hay que guardarse en el directorio "guardado"
function getNextNameFile() {
[ -e "./guardado/video.avi" ] && {
valor=$(ls -1 guardado | grep -E "^video_[0-9]*.*$" | sed -s "s/^video_\([0-9]*\).*/\1/g" | tail -n1)
[ -z "$valor" ] && {
result=1
} || result=$((valor + 1))
} || result=0
}
getNextNameFile;
if [ $result = 0 ]
then
mencoder out.ogg -o guardado/video.avi -ovc lavc -oac mp3lame
else
mencoder out.ogg -o guardado/video_${result}.avi -ovc lavc -oac mp3lame
fi
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.
Muchas gracias! Has usado RegEx, ¿verdad?
Sí, un poco con grep y sed.