Como faço para remover um. desde o início de uma string Bash e escrever o resultado para uma variável? [duplicado]

0

No momento, estou escrevendo uma função de shell e ela me ajudaria a escrever para poder remover um . do início de um nome de pasta (alterando o nome da pasta de uma pasta oculta para uma não pasta oculta). O nome da pasta é armazenado na variável $CWD , que é avaliada usando:

CWD=${PWD##*/}

Gostaria de chamar a variável que é igual a $CWD sem o . no início $GWD . Atualmente, estou tentando fazer isso usando sed , mas estou aberto a qualquer solução para esse problema. Isso é o que eu tenho tentado:

GWD=$(sed -i 's/.*//' $CWD)

Eu também tentei substituir ' nessa expressão por " e tentei substituir -i por -e . Mas isso continua retornando o erro:

sed: can't read .atom: No such file or directory

onde CWD='.atom' para mim no momento.

    
por Brenton Horne 19.01.2016 / 21:06

1 resposta

3

GWD="${CWD#.}"

Seu comando sed não funcionou porque queria ler o arquivo definido em $CWD . Você teria desejado echo $CWD | sed 's/^[\.]//'

Você também pode estar interessado em essa outra pergunta que será ajudar você a obter CWD de maneira mais robusta.

    
por 19.01.2016 / 21:18