EXCLUIR TUDO APÓS O 32º CHARACTER [RESOLVIDO]

1. EXCLUIR TUDO APÓS O 32º CHARACTER [RESOLVIDO]

Patrick Carpezani
patrickcarpezani

(usa Debian)

Enviado em 18/02/2023 - 18:43h

Boa noite pessoal!
Tudo bem? Espero que sim

Estou com dificuldade para usar o SED para pegar "posições" do character e excluir, exemplo:

Tenho essa linha: 37ecb62f912e85ac16faf220a3d3tgrg25y46352ge2

Preciso somente dos 32º primeiros characters, como faria isso? E se fosse os últimos?

Desde já obrigado.


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/02/2023 - 21:43h


patrickcarpezani escreveu:

Boa noite pessoal!
Tudo bem? Espero que sim

Estou com dificuldade para usar o SED para pegar "posições" do character e excluir, exemplo:

Tenho essa linha: 37ecb62f912e85ac16faf220a3d3tgrg25y46352ge2

Preciso somente dos 32º primeiros characters, como faria isso? E se fosse os últimos?
Desde já obrigado.

Segue:
string='37ecb62f912e85ac16faf220a3d3tgrg25y46352ge2';
Apaga apartir do 33º caractere
sed -r "s/.//33g" <<< "$string"
37ecb62f912e85ac16faf220a3d3tgrg
"Printa" 32 caracteres, iniciando do "0"
${var:N:tam} Retorna 'tam' caracteres a partir da posição 'N'
echo ${string:0:32}
37ecb62f912e85ac16faf220a3d3tgrg
#---------------------------------------------------#
n='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
echo "${n:0:5}"
ABCDE
#----------------------------------------------------#
echo "${n:0:13}"
ABCDEFGHIJKLM
"Printa a partir da posição 13, até o final da string:
echo "${n:13}"
NOPQRSTUVWXYZ
#------------------------------#
#Com grep:
grep -Eo '^.{32}' <<< $string
37ecb62f912e85ac16faf220a3d3tgrg
##FIM.....##


______________________________________________________________________
Importante:
Se te ajudei.... Retribua, é simples,
Após marcar o tópico como Resolvido,
escolha a Melhor Resposta.
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________


3. Re: EXCLUIR TUDO APÓS O 32º CHARACTER [RESOLVIDO]

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 18/02/2023 - 18:43h

R: Olá!

Você pode usar o comando sed para excluir todos os caracteres após o 32º caracter.

Se quiser excluir os até o 32º caracter, utilize:

$ sed -e 's/^\(.\{32\}\).*//'


Se quiser excluir os caracteres a partir do 32º caracter, utilize:

$ sed -e 's/^.\{32\}//'


Espero que isso solucione o seu problema.
Qualquer dúvida pode responder aqui.
Boa sorte!


4. Re: EXCLUIR TUDO APÓS O 32º CHARACTER [RESOLVIDO]

Patrick Carpezani
patrickcarpezani

(usa Debian)

Enviado em 18/02/2023 - 19:10h


alexabolada escreveu:

R: Olá!

Você pode usar o comando sed para excluir todos os caracteres após o 32º caracter.

Se quiser excluir os até o 32º caracter, utilize:

$ sed -e 's/^\(.\{32\}\).*//'


Se quiser excluir os caracteres a partir do 32º caracter, utilize:

$ sed -e 's/^.\{32\}//'


Espero que isso solucione o seu problema.
Qualquer dúvida pode responder aqui.
Boa sorte!


Obrigado por me ajudar nesse tópico

Essa opção sed -e 's/^\(.\{32\}\).*//' não deu certo, ele não trouxe nada da string, segue o comando que eu executei: cat ddd.txt | sed -e 's/^\(.\{32\}\).*//'

Obs.: dentro do arquivo ddd.txt tem o seguinte valor: 37ecb62f912e85ac16faf220a3d3tgrg25y46352ge2


5. Re: EXCLUIR TUDO APÓS O 32º CHARACTER [RESOLVIDO]

Patrick Carpezani
patrickcarpezani

(usa Debian)

Enviado em 18/02/2023 - 22:13h


msoliver escreveu:


patrickcarpezani escreveu:

Boa noite pessoal!
Tudo bem? Espero que sim

Estou com dificuldade para usar o SED para pegar "posições" do character e excluir, exemplo:

Tenho essa linha: 37ecb62f912e85ac16faf220a3d3tgrg25y46352ge2

Preciso somente dos 32º primeiros characters, como faria isso? E se fosse os últimos?
Desde já obrigado.

Segue:
string='37ecb62f912e85ac16faf220a3d3tgrg25y46352ge2';
Apaga apartir do 33º caractere
sed -r "s/.//33g" <<< "$string"
37ecb62f912e85ac16faf220a3d3tgrg
"Printa" 32 caracteres, iniciando do "0"
${var:N:tam} Retorna 'tam' caracteres a partir da posição 'N'
echo ${string:0:32}
37ecb62f912e85ac16faf220a3d3tgrg
#---------------------------------------------------#
n='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
echo "${n:0:5}"
ABCDE
#----------------------------------------------------#
echo "${n:0:13}"
ABCDEFGHIJKLM
"Printa a partir da posição 13, até o final da string:
echo "${n:13}"
NOPQRSTUVWXYZ
#------------------------------#
#Com grep:
grep -Eo '^.{32}' <<< $string
37ecb62f912e85ac16faf220a3d3tgrg
##FIM.....##


______________________________________________________________________
Importante:
Se te ajudei.... Retribua, é simples,
Após marcar o tópico como Resolvido,
escolha a Melhor Resposta.
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________


Show, funcionou. Muito obrigado e mais importante, com a sua explicação consegue entender e aplicar em outros cenários.




6. Re: EXCLUIR TUDO APÓS O 32º CHARACTER [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/02/2023 - 22:30h


patrickcarpezani escreveu:


msoliver escreveu:


patrickcarpezani escreveu:

Boa noite pessoal!
Tudo bem? Espero que sim

Estou com dificuldade para usar o SED para pegar "posições" do character e excluir, exemplo:

Tenho essa linha: 37ecb62f912e85ac16faf220a3d3tgrg25y46352ge2

Preciso somente dos 32º primeiros characters, como faria isso? E se fosse os últimos?
Desde já obrigado.

Segue:
string='37ecb62f912e85ac16faf220a3d3tgrg25y46352ge2';
Apaga apartir do 33º caractere
sed -r "s/.//33g" <<< "$string"
37ecb62f912e85ac16faf220a3d3tgrg
"Printa" 32 caracteres, iniciando do "0"
${var:N:tam} Retorna 'tam' caracteres a partir da posição 'N'
echo ${string:0:32}
37ecb62f912e85ac16faf220a3d3tgrg
#---------------------------------------------------#
n='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
echo "${n:0:5}"
ABCDE
#----------------------------------------------------#
echo "${n:0:13}"
ABCDEFGHIJKLM
"Printa a partir da posição 13, até o final da string:
echo "${n:13}"
NOPQRSTUVWXYZ
#------------------------------#
#Com grep:
grep -Eo '^.{32}' <<< $string
37ecb62f912e85ac16faf220a3d3tgrg
##FIM.....##


______________________________________________________________________
Importante:
Se te ajudei.... Retribua, é simples,
Após marcar o tópico como Resolvido,
escolha a Melhor Resposta.
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________


Show, funcionou.
Muito obrigado e mais importante, com a sua explicação consegue entender e aplicar em outros cenários.


A idéia é essa mesmo, resolver e explicar para que o usuário entenda....
Agradeço pelas "Melhores Respostas",
deste e do outro tópico.
Aproveitando, mais uma opção,
AWK:
printf '%s' {A..Z}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
printf '%s' {A..Z}|awk 'BEGIN{FIELDWIDTHS="13 13"}{print $1, $2}'
ABCDEFGHIJKLM NOPQRSTUVWXYZ
FIELDWIDTHS="13 13" # define o num de caracteres dos campos
print $1, $2 #Printa o campo 1 e o 2
#Fica_A_Dica#
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts