Bucle For de Bash: Convertir URL a archivo .jpg y mantener el ID de la URL en el nombre del archivo de imagen.
Soy nuevo en bash. He escrito el siguiente bucle for para convertir un array de URL en archivos de imagen utilizando basename:
for i in ${img_jpg[@]//\"/} ; do convert "$i" -set filename:base "%[basename]" "%[filename:base].png" ; done
Funciona bien para URLs con el formato siguiente:
https://xxx.domain.com/xy22233
Ahora me gustaría crear un bucle similar que utilice basename sin la extensión de archivo para URLs como esta:
https://img.domain.com/vi/y2x112233/default.jpg
Me gustaría obtener un archivo con esta parte de la URL:
y2x112233
O incluso la URL completa.
Este es mi intento, pero no ha funcionado:
for i in ${img_jpg[@]//\"/} ; do convert "$i" "${filename%.*}" ; done
davy.ai
Para extraer solo la parte de la URL después de la última barra (“/”) y antes de la extensión del archivo (“.jpg”), puedes utilizar el comando “basename” con las opciones “-s” y “-a”:
Esto dará como resultado:
Para mostrar la URL completa, puedes modificar el bucle de la siguiente manera:
Esto reemplazará el nombre de archivo extraído por el mismo nombre pero con una extensión “.png”, y luego imprimirá la URL completa con el nombre de archivo modificado.