Exclua o primeiro caractere conhecido em uma string com sed

12

Como alguém exclui o primeiro caractere conhecido em uma string com sed?

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

Quero que o sed verifique se "@" existe como o primeiro caractere. Nesse caso, ele deve excluir o caractere.

yael
fonte

Respostas:

10

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

^ significa início da string

@ seu personagem conhecido

(.*) o resto, capturado

o bloco capturado será substituído pela saída Desculpe, não é possível testá-lo no momento, mas deve ser algo parecido

Pablo
fonte
18

Não há necessidade de capturar e substituir.

sed 's/^@//'

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

johnny
fonte
0

Você pode fazer isso.

sed 's /^.//'

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

Exemplo:

echo test123 | sed 's/^.//'
est123
echo test123 | sed 's/^..//'
st123
Prakaash Ravi Chandran
fonte
11
A pergunta diz: "Quero que o sed verifique se" @ "existe como o primeiro caractere. Nesse caso, ele deve excluir o personagem. ” Sua resposta exclui o primeiro caractere de cada linha, não importa qual seja. Por exemplo, se uma linha contiver test123, parece que o OP deseja deixá-lo sozinho.
Scott