BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Extraer una parte del texto del nombre de archivo en bash

Serakon

Lo que quiero conseguir es sencillo un script en bash que le meta estos textos por ejemplo:

  • Todos saltamos.avi
  • Nacimos siendo dioses2.0.txt

Y me saque el texto de las extensiones. Del 1º me de resultado avi y el segundo txt. El mismo comando debe valer para cualquier nombre, o bien que coja los 3 últimos caracteres o que corte a partir del último punto.

BocaDePez
BocaDePez
1

Quizás te sirva la expresión ${cadena:posicion:longitud} con una posición negativa.

🗨️ 1
Serakon

Pues muchas gracias me ha sido perfecto justamente eso echo ${cadena: -3}

Y como las extensiones son todas de 3 caracteres no hay problema, desconocía completamente que se pudiera hacer esto en bash.

BocaDePez
BocaDePez

Texto=$(echo $LINEA\|cut -f1 -d".")

🗨️ 2
mceds

¿Para qué crear otro proceso? TEXTO=$(cut -f1 -d"."<<<$LINEA)

¿Por qué tirar de comandos externos cuando el propio BASH tiene una solución elegante?

No te has leído la pregunta. El campo número uno no es el que necesita su autor. Pero, aunque lo cambies al dos, sigue sin resolverse con cut el tema de los nombres de archivos que contienen puntos.

🗨️ 1
Serakon

De momento me fue muy bien el que utilizo desde 2014, la verdad.

Pero por tu mensaje ya veo que es mas ineficiente y no util lo que posteo el user.