Tengo una parte de un script bash que está obteniendo un nombre de archivo sin extensión, pero estoy tratando de entender qué está pasando realmente aquí. ¿Para qué son los "%%"? ¿Puede alguien explicar qué está haciendo bash detrás de escena? ¿Cómo se puede usar esta técnica de forma general?¿Utiliza esta técnica de extracción de nombre de archivo bash?
#!/bin/bash
for src in *.tif
do
txt=${src%%.*}
tesseract ${src} ${txt}
done
Tenga en cuenta que %% eliminará todo el '.' en el nombre del archivo, no solo la llamada extensión. Por ejemplo, si tuviera hello.world.tif y hello.death.tif, ambos tendrían tesseract enviándolos al mismo destino, hola. Si desea eliminar solo una extensión, use%. – johnny
Porque en el caso de múltiples "." S en el nombre de archivo que desea buscar y tira del "patrón de coincidencia más corto" del lado derecho de la cadena. Tiene sentido para mi. Entonces, en el caso de mi script anterior, debería cambiarlo a "%". Se supone que esto elimina las extensiones de los nombres de los archivos. – jjclarkson