Filtrando valores por linha [RESOLVIDO]

1. Filtrando valores por linha [RESOLVIDO]

thiago
lacerdat25

(usa Red Hat)

Enviado em 20/05/2020 - 11:30h

Ola galerinha!

Gostaria de saber como eu faço para coletar algumas posições especificas de uma linha num arquivo de texto?

EX da linha filtrada:
0002379 32020051800000000004566390 22594565 0000000213

QUERO coletar:
0002379 20200518 22594565 213

Após quero colocar um abaixo do outro:
0002379
20200518
22594565
213

Estou trabalhando com AWK, mas não consigo realizar o filtro por valores específicos, já com o CUT, só pego um valor!

Obrigado pela ajuda!


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/05/2020 - 19:47h

lacerdat25 escreveu:

Ola galerinha!

Gostaria de saber como eu faço para coletar algumas posições especificas de uma linha num arquivo de texto?

EX da linha filtrada:
0002379 32020051800000000004566390 22594565 0000000213

QUERO coletar:
0002379 20200518 22594565 213

Após quero colocar um abaixo do outro:
0002379
20200518
22594565
213

Estou trabalhando com AWK, mas não consigo realizar o filtro por valores específicos, já com o CUT, só pego um valor!
Obrigado pela ajuda!

Boa noite Lacerda, segue:
awk 'BEGIN{FIELDWIDTHS="7 2 8 18 8 8 3"} {OFS="\n";print $1,$3,$5,$7"\n"}' linha.txt
Ou
linha="0002379 32020051800000000004566390 22594565 0000000213"
read -a fld <<< ${linha}
echo -e "${fld[0]}\n${fld[1]:0:8}\n${fld[2]}\n${fld[3]//0}"
0002379
32020051
22594565
213

Obs.:
FIELDWIDTHS="7 2 8 18 8 8 3", define o "tamanho" de cada campo.
Se a linha tem sempre o mesmo nº de caracteres, dará certo....
É isso.....

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________

3. Re: Filtrando valores por linha

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 20/05/2020 - 13:54h

v aí

mauricio@phantom ~/Desktop $ cat t.txt 
0002379 32020051800000000004566390 22594565 0000000213
3254878 64889797464878797956454444 00214477 9652147788
mauricio@phantom ~/Desktop $


#!/bin/bash

while read linha; do

echo $linha | cut -d' ' -f1
expr substr "$linha" 10 8
echo $linha | cut -d' ' -f3
expr substr "$linha" 52 3
echo -e "\n---------\n"

done < t.txt


mauricio@phantom ~/Desktop $ ./te.sh 
0002379
20200518
22594565
213

---------

3254878
48897974
00214477
788

---------

mauricio@phantom ~/Desktop $


------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts