Exclui o primeiro caractere conhecido em uma string com sed

8

Como se exclui o primeiro caractere conhecido em uma string com sed?

Por exemplo, digamos que eu queira excluir o primeiro caractere (que é @) na string "@ ABCDEFG1234"

Eu quero sed para verificar se "@" existe como o primeiro caractere. Em caso afirmativo, deve excluir o caractere.

    
por yael 27.06.2010 / 16:27

3 respostas

7

sed 's/^@\(.*\)//'

^ significa início da string

@ seu caractere conhecido

(.*) o restante, capturado

então o bloco capturado será substituído pela saída Desculpe, não posso testá-lo no momento, mas deve ser algo parecido com isso

    
por 27.06.2010 / 16:39
12

Não há necessidade de capturar e substituir.

sed 's/^@//'

Isso substitui o caractere @ quando é o primeiro ^ na string, sem nada. Assim, excluindo-o.

    
por 14.09.2011 / 08:55
0

Você pode fazer isso em vez disso.

sed 's/^.//'

^ - Starting character 
. - No of charactes(.. means two characters)

Exemplo:

echo test123 | sed 's/^.//'
est123
echo test123 | sed 's/^..//'
st123
    
por 12.03.2018 / 04:05

Tags