Índice

Eliminar el comienzo o final de una cadena

Objetivo

Eliminar el final de una cadena de caracteres.

Ejemplo

Eliminar la extensión de un nombre de archivo.

Inicialización de la variable archivo

$ archivo=informe.docx

Primer método (ksh, bash)

Utilizar los caracteres de sustitución de variables:

$ echo ${archivo%.*}   
Informe

El carácter % permite eliminar la parte más corta a la derecha correspondiente a .*.

(Ver capítulo Las bases de la programación shell - Las variables de usuario)

Segundo método

Uso del comando expr:

$ expr $archivo: ’\(.*\)\..*$’ 
informe

El comando expr devuelve la cadena que corresponde al paréntesis.

(Ver capítulo Expresiones regulares - Uso de expresiones regulares por comandos)

Tercer método

Uso del comando sed:

$ echo $Archivo | sed ’s/\.[ˆ.]*$//’ 
informe

Se busca la parte de la extensión y se remplaza con vacío.

(Ver capítulo Expresiones regulares - Uso de expresiones regulares por comandos)

Cuarto método

Uso de la función sub de awk y una expresión regular:

$ echo $archivo | awk ’{ sub(/\..+$/,"",$0); print $0 }’ 
informe

(Ver capítulo El lenguaje de programación awk - Funciones integradas)

Quinto método

Uso del comando basename:

$ basename $archivo .docx 
informe

Este comando está dedicado a los nombres de archivos: el segundo argumento opcional es el sufijo a eliminar.