Extraiga el nombre base del archivo en Bash

Fumbani Banda 30 enero 2023
  1. Uso de la expansión de parámetros de subcadena para extraer el nombre base del archivo en Bash
  2. Uso del comando basename para extraer el nombre base del archivo en Bash
Extraiga el nombre base del archivo en Bash

Este tutorial muestra diferentes formas de extraer el nombre base del archivo mediante la expansión de parámetros de subcadena y el comando nombrebase.

Uso de la expansión de parámetros de subcadena para extraer el nombre base del archivo en Bash

Los parámetros en Bash son elementos que almacenan valores. La expansión consiste en sustituir una referencia de parámetro con su valor.

Para hacer la expansión de parámetros en Bash, anteponga el nombre del parámetro con un carácter $. Es opcional encerrar el nombre del parámetro entre llaves.

Las dos notaciones para la expansión de parámetros se muestran a continuación.

$parameter
${parameter}

Dentro de las llaves de expansión de parámetros, se pueden agregar algunos operadores junto con sus argumentos. Los operadores se colocan después del nombre del parámetro y antes de la llave de cierre.

Podemos usar estos operadores para condicionales, subcadenas, subconjuntos, listados de prefijos, conteo de elementos y expansión de modificación de casos. Estos operadores solo modifican el parámetro sin modificar el valor del parámetro.

La siguiente secuencia de comandos utiliza la expansión de parámetros de subcadena para extraer una subcadena mediante la coincidencia de patrones de cadena. La sintaxis utilizada es ${parameter##pattern}.

El ## especifica que el patrón debe coincidir desde el lado izquierdo de la cadena y el */ es el patrón en nuestro caso. El ${path##*/} coincide con el último / de la variable path y devuelve la subcadena restante, file1.txt, en este caso.

path=/home/delftstack/test/file1.txt

echo "${path##*/}"

La ejecución del script imprime el nombre del archivo en la salida estándar.

file1.txt

Uso del comando basename para extraer el nombre base del archivo en Bash

El basename es un comando en Linux que devuelve el último elemento dado una ruta de archivo como argumento. En el siguiente script, el comando basename recibe la variable path que tiene la ruta del archivo como argumento. El script ejecuta el comando basename utilizando la sustitución de comandos.

La sustitución de comandos es una característica de Bash que nos permite ejecutar comandos de Linux y almacenar la salida del comando en una variable. Una vez que se ejecuta un comando con esta característica, la salida estándar del comando reemplaza el comando, y se eliminan los saltos de línea finales.

La salida del comando basename reemplaza el comando en sí y se asigna a la variable fname. El comando printf se usa para mostrar el contenido de la variable fname en la salida estándar.

path=/home/delftstack/test/file1.txt

fname=$(basename "$path")

printf $fname
printf "\n"

El script muestra el siguiente resultado después de ejecutarlo.

file1.txt
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub