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.

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


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.


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.