Recortar variable en bash [duplicar]
Sep 19 2020
Necesito recortar la variable wordpress.tar.gza wordpress.
He intentado:
#!/bin/bash
dir=wordpress.tar.gz
echo $dir RELEASE=$($dir | sed "s/-.tar.gz//") echo ${RELEASE}
Respuestas
2 WiktorStribiżew Sep 19 2020 at 20:43
Puede utilizar la expansión de cadenas:
RELEASE="${dir%%.*}"
Vea la demostración en línea de Bash :
dir=wordpress.tar.gz
RELEASE="${dir%%.*}"
echo "$RELEASE"
# => wordpress
La ${dir%%.*}parte elimina la parte más larga de texto desde el final (debido a %%) hasta el primer carácter de punto.
Si desea usar sed, puede eliminar toda la cadena que comienza con (e incluye) el primer punto:
RELEASE="$(sed 's/\..*//' <<< $dir)"
Aquí, \..*coincide con un punto y luego cualquier cero o más caracteres al final de la cadena, y la coincidencia se reemplaza con una cadena vacía (se elimina) ya que el RHS está vacío.
1 MichaelO. Sep 19 2020 at 20:42
RELEASE=$(echo $dir | sed "s/\.tar\.gz//")