1 votos

Cambiar el nombre de los archivos de texto basándose en una palabra clave dentro de los archivos

Tengo muchos archivos dentro de una carpeta con .txt extensión. Ahora son nombrados aleatoriamente por una aplicación pero quiero renombrar cada archivo de texto con algunas palabras escritas en esos mismos archivos después de las palabras Name: pero antes de la palabra Age: .

Ejemplo

Un archivo llamado 13765_46748.txt contiene:

This is just a test file containing info of each persons.
Name: Pearson Bratts Age: 55 Profession:Technician

Ahora quiero que el archivo anterior sea renombrado a Pearson Bratts.txt usando Tasker o cualquier otra aplicación script con script que funcione.

1voto

El completo shell script sigue. Se necesita un Emulador de terminal pero eso te lo dejo a ti.


if [ "$1" == "$(cat /dev/null)" ]; then
 echo "Usage: $0 <file>"
 return 1
fi

content="$(cat '$1')"
content="${content#*Name: }"
content="${content// Age*/}"

mv "$1" "$content.txt"

Esto se debe guardar en un algo.sh que, al ejecutarse, requerirá un parámetro adicional. Por ejemplo, supondremos que lo llamará renamer.sh y por lo tanto el uso será:

renamer.sh some/file.txt

. Cambiará el nombre del archivo que le des, de acuerdo con su contenido. Darle el archivo correcto, es tu responsabilidad, y sólo funciona para un archivo por ejecución. No funcionará si el archivo tiene espacios dentro de su nombre.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X