Variabile Trim in bash [duplicate]

Sep 19 2020

Devo tagliare la variabile wordpress.tar.gza wordpress.

Ho provato:

#!/bin/bash
dir=wordpress.tar.gz
echo $dir RELEASE=$($dir | sed "s/-.tar.gz//") echo ${RELEASE}

Risposte

2 WiktorStribiżew Sep 19 2020 at 20:43

Puoi usare l'espansione della stringa:

RELEASE="${dir%%.*}"

Guarda la demo online di Bash :

dir=wordpress.tar.gz
RELEASE="${dir%%.*}"
echo "$RELEASE"
# => wordpress

La ${dir%%.*}parte rimuove la parte di testo più lunga dalla fine (a causa di %%) fino al primo carattere punto.

Se vuoi usare sed, puoi rimuovere tutta la stringa che inizia con (e incluso) il primo punto:

RELEASE="$(sed 's/\..*//' <<< $dir)"

Qui, \..*corrisponde a un punto e quindi a qualsiasi zero o più caratteri alla fine della stringa e la corrispondenza viene sostituita con una stringa vuota (viene rimossa) poiché RHS è vuoto.

1 MichaelO. Sep 19 2020 at 20:42
RELEASE=$(echo $dir | sed "s/\.tar\.gz//")