Variável de corte em bash [duplicado]
Sep 19 2020
Preciso cortar a variável wordpress.tar.gzpara wordpress.
Eu tentei:
#!/bin/bash
dir=wordpress.tar.gz
echo $dir RELEASE=$($dir | sed "s/-.tar.gz//") echo ${RELEASE}
Respostas
2 WiktorStribiżew Sep 19 2020 at 20:43
Você pode usar a expansão de string:
RELEASE="${dir%%.*}"
Veja a demonstração online do Bash :
dir=wordpress.tar.gz
RELEASE="${dir%%.*}"
echo "$RELEASE"
# => wordpress
A ${dir%%.*}parte remove a maior parte do texto do final (devido a %%) até o primeiro caractere de ponto.
Se quiser usar sed, você pode remover toda a string começando com (e incluindo) o primeiro ponto:
RELEASE="$(sed 's/\..*//' <<< $dir)"
Aqui, \..*corresponde a um ponto e depois a qualquer zero ou mais caracteres no final da string, e a correspondência é substituída por uma string vazia (é removida), pois o RHS está vazio.
1 MichaelO. Sep 19 2020 at 20:42
RELEASE=$(echo $dir | sed "s/\.tar\.gz//")
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino