Cómo extraer nombre de archivo y extensión en Bash

Como Extraer Nombre De Archivo Y Extension En Bash



Bash es un poderoso shell de línea de comandos que se usa comúnmente en los sistemas operativos Linux y Unix. Una tarea común cuando se trabaja con archivos en Bash es extraer el nombre de archivo y la extensión de una ruta de archivo. Este artículo discutirá cómo extraer el nombre de archivo y la extensión en Bash y brindará ejemplos de cómo usar estos valores en sus scripts.

Extrayendo el nombre de archivo y la extensión en Bash

Hay varias formas de extraer el nombre del archivo y la extensión en Bash, aquí hay tres métodos comunes:







1: Uso del comando de nombre base

El nombre base El comando devuelve el nombre de archivo de una ruta de archivo y extrae el nombre de archivo y la extensión. Puedes usar el nombre base comando con el -sufijo opción, que elimina el sufijo especificado del nombre de archivo como en el código a continuación:



#!/bin/bash
# Ruta de archivo de ejemplo
ruta de archivo = '/path/to/file.txt'
 
# Extraer nombre de archivo
Nombre del archivo =$ ( nombre base $file_path )
 
# Extraer extensión
extensión = ' ${nombre de archivo##*.} '
 
eco 'Nombre del archivo: $nombre de archivo '
eco 'Extensión: $extensión '

 







2: Uso de la expansión de parámetros

El expansión de parámetros La sintaxis es una característica poderosa de Bash que le permite manipular cadenas. Para extraer el nombre de archivo y la extensión usando la expansión de parámetros, puede usar el ${parámetro##palabra} sintaxis, que elimina la coincidencia más larga del patrón especificado desde el principio del parámetro como en el siguiente código:

#!/bin/bash
# Ruta de archivo de ejemplo
ruta de archivo = '/path/to/file.txt'
# Extraer nombre de archivo
Nombre del archivo = ' ${ruta_del_archivo##*/} '
# Extraer extensión
extensión = ' ${nombre de archivo##*.} '
eco 'Nombre del archivo: $nombre de archivo '
eco 'Extensión: $extensión '

 



3: Uso de la variable IFS (separador de campo interno)

El variable IFS es utilizado por Bash para dividir cadenas en campos configurando el variable IFS al separador de ruta (“/”). Puede extraer el nombre de archivo y la extensión de una ruta de archivo a través de esta variable utilizando el código que se indica a continuación:

#!/bin/bash
# Ruta de archivo de ejemplo
ruta de archivo = '/path/to/file.txt'
# Establecer IFS en '/'
IFS = '/' leer -r -a partes <<< ' $file_path '
 
# Extraer nombre de archivo
Nombre del archivo = ' ${partes[-1]} '
# Extraer extensión
extensión = ' ${nombre de archivo##*.} '
eco 'Nombre del archivo: $nombre de archivo '
eco 'Extensión: $extensión '

 

Conclusión

Extraer el nombre de archivo y la extensión de una ruta de archivo es una tarea común cuando se trabaja con archivos en Bash. Este artículo discutió tres métodos comunes para extraer el nombre de archivo y la extensión en Bash. Al usar el nombre base comando, el expansión de parámetros sintaxis, o la variable IFS , puede extraer rápida y fácilmente el nombre de archivo y los valores de extensión de una ruta de archivo.