Trimmvariable in Bash [Duplikat]
Sep 19 2020
Ich muss die Variable wordpress.tar.gzauf trimmen wordpress.
Ich habe es versucht:
#!/bin/bash
dir=wordpress.tar.gz
echo $dir RELEASE=$($dir | sed "s/-.tar.gz//") echo ${RELEASE}
Antworten
2 WiktorStribiżew Sep 19 2020 at 20:43
Sie können die Zeichenfolgenerweiterung verwenden:
RELEASE="${dir%%.*}"
Siehe die Online-Bash-Demo :
dir=wordpress.tar.gz
RELEASE="${dir%%.*}"
echo "$RELEASE"
# => wordpress
Der ${dir%%.*}Teil entfernt den längsten Textblock vom Ende (aufgrund von %%) bis zum ersten Punktzeichen.
Wenn Sie verwenden möchten sed, können Sie alle Zeichenfolgen entfernen, die mit dem ersten Punkt beginnen (und diesen einschließen):
RELEASE="$(sed 's/\..*//' <<< $dir)"
Hier wird \..*ein Punkt und dann null oder mehr Zeichen mit dem Ende der Zeichenfolge abgeglichen, und die Übereinstimmung wird durch eine leere Zeichenfolge ersetzt (wird entfernt), da die RHS leer ist.
1 MichaelO. Sep 19 2020 at 20:42
RELEASE=$(echo $dir | sed "s/\.tar\.gz//")