Cómo extraer el nombre de BasenName sin ruta y extensión en Bash

Cómo extraer el nombre de BasenName sin ruta y extensión en Bash
El comando Basename se usa comúnmente en Bash para recuperar el nombre base de un archivo o directorio de una ruta dada eliminando cualquier componente de directorio líder. Este artículo explorará cómo extraer el nombre base de un archivo sin su ruta y extensión utilizando bash.

Extraer el nombre del archivo sin ruta y extensión en Bash

Para extraer el nombre de base de un archivo sin su ruta y extensión, podemos usar el comando Basename junto con la función de sustitución de parámetros de BASH. El comando Basename devuelve el último componente de un nombre de ruta, que en nuestro caso sería el nombre del archivo con su extensión. Sin embargo, al especificar la opción de sufijo, podemos quitar la extensión del nombre del archivo, aquí hay un código BASH de ejemplo:

#!basura
FilePath =/Home/Aaliyan/Bash3.mierda
S = $ (Basename $ FilePath)
echo "$ s%.* "

El script bash anterior define una variable llamada "ruta de archivo"Y le asigna la ruta del archivo"/Home/Aaliyan/Bash3.mierda". El script luego usa el comando Basename para extraer el nombre base del archivo de la ruta del archivo y asigna el resultado a una variable llamada "S".

La segunda expansión del parámetro elimina la extensión del nombre del archivo eliminando la coincidencia más corta posible de cualquier número de caracteres seguido de un punto usando "%.*. La cadena resultante, "Bash3", se imprime en la consola utilizando el comando ECHO:

Otra forma de extraer el nombre de base de un archivo sin su ruta de archivo y extensión es mediante el uso de la expansión de parámetros que no es usar el comando Basename, a continuación se encuentra el código bash de ejemplo que utiliza el método de expansión de parámetros para obtener el nombre de base de un archivo sin archivo extensión de ruta y archivo:

#!basura
FilePath =/Home/Aaliyan/Bash3.mierda
S = $ FilePath ##*/
echo "$ s%.* "

Este es un script bash que define una variable llamada "filepath" y le asigna el valor "/Home/Aaliyan/Bash3.mierda". Luego, el script utiliza la función de expansión de parámetros de Bash dos veces para extraer el nombre de base del archivo sin su ruta y extensión. Específicamente, la primera expansión de parámetros elimina la ruta del nombre del archivo eliminando la coincidencia más larga posible de cualquier número de caracteres seguido de una barra de reenvío usando "##/".

La cadena resultante, "bash3.mierda"Luego se asigna a una variable llamada" S ". La segunda expansión del parámetro elimina la extensión del nombre del archivo eliminando la coincidencia más corta posible de cualquier número de caracteres seguido de un punto usando "%.". La cadena resultante, "Bash3", se imprime en la consola utilizando el comando ECHO:

Conclusión

Extraer el nombre de base de un archivo sin su ruta y extensión es una tarea común en las secuencias de comandos de bash. Al usar el comando Basename en combinación con la sustitución de parámetros y las características de expansión de los parámetros de BASH, podemos lograr fácilmente esta tarea. Esto puede ser útil cuando se trabaja con nombres de archivos en scripts, por ejemplo, al cambiar el nombre de archivos o realizar operaciones en archivos con nombres similares.