shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script-pt] 4 últimos caracteres


From: Alan Caldas
Subject: Re: [shell-script-pt] 4 últimos caracteres
Date: Sat, 4 Jan 2020 19:08:39 +0000 (UTC)


Olá pessoal, boa tarde.

Acho que o Fernando Mercês teve um pequeno lapso e confundiu os caracteres na primeira sequência de comandos (o que não aconteceu nas outras sequências). Parece que ao invés de

$ a=string
$ echo ${a# -4}
ring

o correto seria

$ a=string
$ echo ${a: -4}
ring

Não sei se era necessário apontar essa pequena confusão, mas acho que pode ser útil para os iniciantes como eu.

obrigado.

Alan.
Em sexta-feira, 3 de janeiro de 2020 23:00:41 GMT-3, Fernando Mercês <address@hidden> escreveu:


Boa noite! :)

Primeiro vale descobrir como exibir somente os últimos caracteres de uma string:

$ a=string
$ echo ${a# -4}
ring

Então você só precisa descobrir como ler um arquivo linha a linha. Tem gente que faz assim:

$ for linha in $(cat arquivo.txt); do echo "$linha"; done

Mas isso tem alguns problemas com espaços e tabs (porque o for vai parar se encontrá-los). Normalmente eu uso while já configurando o IFS (o caractere separador de campo interno) na mesma linha:

$ while IFS= read -r linha; do echo ${linha: -4}; done < arquivo.txt
ETUR
DUNT
INIM
ORIS

Se tiver dentro de um script, pode indentar bonitinho:

while IFS= read -r linha; do
   echo ${linha: -4}
done < arquivo.txt

Outra opção é utilizando expressões regulares. Com o grep, por exemplo, você pode pedir que ele exiba somente o que casar com a expressão regular (opção -o). Então se montarmos uma expressão regular pra pegar os quatro caracteres antes do final da linha ($), dá certo:

$ grep -o '....$' arquivo.txt
ETUR
DUNT
INIM
ORIS

Também dá pra especificar o número diretamente, mas aí tem que ativar também as expressões regulares estendidas (antigo egrep):

$ grep -Eo '.{4}$' arquivo.txt
ETUR
DUNT
INIM
ORIS

Certamente há outros jeitos com sed, awk, gawk e por aí vai... =)

Abraço.

On Fri, Jan 3, 2020 at 6:38 PM PY2YP <address@hidden> wrote:
Boa tarde senhores,

Tenho um arquivo assim:

LOREM IPSUM DOLOR SIT AMET, CONSECTETUR
ADIPISCING ELIT, SED DO EIUSMOD TEMPOR INCIDIDUNT
UT LABORE ET DOLORE MAGNA ALIQUA. UT ENIM AD MINIM
VENIAM, QUIS NOSTRUD EXERCITATION ULLAMCO LABORIS

Preciso da saída com apenas os 4 últimos caracteres de cada linha:
ETUR
DUNT
INIM
ORIS

Confesso que passei várias horas procurando a solução. Ainda há muito o
que aprender!

Sou-lhes antecipadamente agradecido.

--
Cesar

_______________________________________________
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: address@hidden
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/

NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.
_______________________________________________
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: address@hidden
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/

NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]