Filtro em 3 posições no arquivo

1. Filtro em 3 posições no arquivo

Sullywan Martins de Araujo
Sullywan

(usa Outra)

Enviado em 14/10/2020 - 11:21h

Bom dia galera, estou começando no linux e me deparei com a seguinte situação:
Tenho que realizar um filtro no meu arquivo, onde quero salvar as linhas filtradas em um outro arquivo...
Gostaria que me retornasse as linhas que tivessem esses conteúdos por exemplo, aplicasse esse filtro e me retornasse a linha inteira -006, -951, GS8V
Exemlpo: 000000009053991020069----------006000000000201912010845578007011888----------951000000000000104353953003 GS8V00000000001089920 000000000011113R006011

00000000861122236740-----------011110000000201911291255501554991114555-------006000540000000012054050007 NENV00000000000149900 000000000002059N006011
00000000871126627000-----------011110000000201911291306581554991114769-------006000540000000000854050007 NENV00000000000059900 000000000000736N006011
00000000881126627000-----------011110000000201911291426511554991114526-------006000540000000001054050008 NENV00000000000059900 000000000000736N006011
000000008953991406363----------006000000000201912010854438007769595----------21100000000000000185305200A GS8V00000000000050000 000000000000515R006011
000000009053991020069----------006000000000201912010845578007011888----------951000000000000104353953003 GS8V00000000001089920 000000000011113R006011
000000009153991534753----------006000000000201912010739288007011888----------951000000000000013053953003 GS8V00000000000150000 000000000001544R006011
00000000921130179450-----------011110000000201912010843581553991005020-------006000530000000022053050005 NENV00000000000249900 000000000002470R006011
000000009363992958459----------069000000000201912010855388003100002----------01100000000000007285305200A GS8V00000000000759920 000000000007718R006011
000000009453991732473----------006000000000201912010831378005912117----------01100000000000005375305200A GS8V00000000000570000 000000000005865R006011
000000009553984138850----------006000000000201912010838578007011888----------951000000000000101753953003 GS8V00000000001030000 000000000010599R006011
000000009653991734280----------006000000000201912010854298007707900----------01100000000000000195305200A GS8V00000000000059920 000000000000515R006011
000000009753991137042----------006000000000201912010749098003100002----------01100000000000009445305200A GS8V00000000000980000 000000000010084R006011
000000009853991790178----------006000000000201912010800128007011888----------951000000000000091453953003 GS8V00000000000930000 000000000009570R006011
000000009953991609648----------006000000000201912010926188007011888----------951000000000000010553953003 GS8V00000000000110000 000000000001132R006011
000000010053991519850----------006000000000201912010920438007011888----------951000000000000010553953003 GS8V00000000000110000 000000000001132R006011
000000010153991492384----------006000000000201912010018328000070110----------01100000000000001325305200A GS8V00000000000160000 000000000001646R006011


  


2. Re: Filtro em 3 posições no arquivo

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/10/2020 - 16:51h

Sullywan escreveu:

Bom dia galera, estou começando no linux e me deparei com a seguinte situação:
Tenho que realizar um filtro no meu arquivo, onde quero salvar as linhas filtradas em um outro arquivo...
Gostaria que me retornasse as linhas que tivessem esses conteúdos por exemplo, aplicasse esse filtro e me retornasse a linha inteira -006, -951, GS8V
Exemlpo: 000000009053991020069----------006000000000201912010845578007011888----------951000000000000104353953003 GS8V00000000001089920 000000000011113R006011

00000000861122236740-----------011110000000201911291255501554991114555-------006000540000000012054050007 NENV00000000000149900 000000000002059N006011
00000000871126627000-----------011110000000201911291306581554991114769-------006000540000000000854050007 NENV00000000000059900 000000000000736N006011
00000000881126627000-----------011110000000201911291426511554991114526-------006000540000000001054050008 NENV00000000000059900 000000000000736N006011
000000008953991406363----------006000000000201912010854438007769595----------21100000000000000185305200A GS8V00000000000050000 000000000000515R006011
000000009053991020069----------006000000000201912010845578007011888----------951000000000000104353953003 GS8V00000000001089920 000000000011113R006011
000000009153991534753----------006000000000201912010739288007011888----------951000000000000013053953003 GS8V00000000000150000 000000000001544R006011
00000000921130179450-----------011110000000201912010843581553991005020-------006000530000000022053050005 NENV00000000000249900 000000000002470R006011
000000009363992958459----------069000000000201912010855388003100002----------01100000000000007285305200A GS8V00000000000759920 000000000007718R006011
000000009453991732473----------006000000000201912010831378005912117----------01100000000000005375305200A GS8V00000000000570000 000000000005865R006011
000000009553984138850----------006000000000201912010838578007011888----------951000000000000101753953003 GS8V00000000001030000 000000000010599R006011
000000009653991734280----------006000000000201912010854298007707900----------01100000000000000195305200A GS8V00000000000059920 000000000000515R006011
000000009753991137042----------006000000000201912010749098003100002----------01100000000000009445305200A GS8V00000000000980000 000000000010084R006011
000000009853991790178----------006000000000201912010800128007011888----------951000000000000091453953003 GS8V00000000000930000 000000000009570R006011
000000009953991609648----------006000000000201912010926188007011888----------951000000000000010553953003 GS8V00000000000110000 000000000001132R006011
000000010053991519850----------006000000000201912010920438007011888----------951000000000000010553953003 GS8V00000000000110000 000000000001132R006011
000000010153991492384----------006000000000201912010018328000070110----------01100000000000001325305200A GS8V00000000000160000 000000000001646R006011

Boa tarde Sullywan.
O filtro pode ser feito com grep, sed, awk, ou até mesmo com o bash....
AWK:
awk -F'[- ]+' '$2~/^006/ && $3~/^951/ && $4~/^GS8V/ {print $0}' dados.txt >> novo_arq
GREP:
grep -E '[-]006.*[-]951[0-9]+ GS8V' dados.txt >> novo_arq
SED:
sed -nr '/^[0-9]+[-]+006[0-9]+[-]+951[0-9]+ GS8V.*$/p' dados.txt

Se quer aprender, busque por:
regex/"expressões regulares", sed, awk e grep.
Recomendo:
https://aurelio.net/regex/
https://aurelio.net/shell/canivete/
https://aurelio.net/sed/
É só procurar, material didático não falta.....

man, info e --help também ajudam:
Ex:
man grep
info grep
grep --help
______________________________________________________________________
*Isso é a minha assinatura!!!! Não faz parte da solução.*
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


3. Re: Filtro em 3 posições no arquivo

Sullywan Martins de Araujo
Sullywan

(usa Outra)

Enviado em 14/10/2020 - 17:05h

msoliver escreveu:

Sullywan escreveu:

Bom dia galera, estou começando no linux e me deparei com a seguinte situação:
Tenho que realizar um filtro no meu arquivo, onde quero salvar as linhas filtradas em um outro arquivo...
Gostaria que me retornasse as linhas que tivessem esses conteúdos por exemplo, aplicasse esse filtro e me retornasse a linha inteira -006, -951, GS8V
Exemlpo: 000000009053991020069----------006000000000201912010845578007011888----------951000000000000104353953003 GS8V00000000001089920 000000000011113R006011

00000000861122236740-----------011110000000201911291255501554991114555-------006000540000000012054050007 NENV00000000000149900 000000000002059N006011
00000000871126627000-----------011110000000201911291306581554991114769-------006000540000000000854050007 NENV00000000000059900 000000000000736N006011
00000000881126627000-----------011110000000201911291426511554991114526-------006000540000000001054050008 NENV00000000000059900 000000000000736N006011
000000008953991406363----------006000000000201912010854438007769595----------21100000000000000185305200A GS8V00000000000050000 000000000000515R006011
000000009053991020069----------006000000000201912010845578007011888----------951000000000000104353953003 GS8V00000000001089920 000000000011113R006011
000000009153991534753----------006000000000201912010739288007011888----------951000000000000013053953003 GS8V00000000000150000 000000000001544R006011
00000000921130179450-----------011110000000201912010843581553991005020-------006000530000000022053050005 NENV00000000000249900 000000000002470R006011
000000009363992958459----------069000000000201912010855388003100002----------01100000000000007285305200A GS8V00000000000759920 000000000007718R006011
000000009453991732473----------006000000000201912010831378005912117----------01100000000000005375305200A GS8V00000000000570000 000000000005865R006011
000000009553984138850----------006000000000201912010838578007011888----------951000000000000101753953003 GS8V00000000001030000 000000000010599R006011
000000009653991734280----------006000000000201912010854298007707900----------01100000000000000195305200A GS8V00000000000059920 000000000000515R006011
000000009753991137042----------006000000000201912010749098003100002----------01100000000000009445305200A GS8V00000000000980000 000000000010084R006011
000000009853991790178----------006000000000201912010800128007011888----------951000000000000091453953003 GS8V00000000000930000 000000000009570R006011
000000009953991609648----------006000000000201912010926188007011888----------951000000000000010553953003 GS8V00000000000110000 000000000001132R006011
000000010053991519850----------006000000000201912010920438007011888----------951000000000000010553953003 GS8V00000000000110000 000000000001132R006011
000000010153991492384----------006000000000201912010018328000070110----------01100000000000001325305200A GS8V00000000000160000 000000000001646R006011

Boa tarde Sullywan.
O filtro pode ser feito com grep, sed, awk, ou até mesmo com o bash....
AWK:
awk -F'[- ]+' '$2~/^006/ && $3~/^951/ && $4~/^GS8V/ {print $0}' dados.txt >> novo_arq
GREP:
grep -E '[-]006.*[-]951[0-9]+ GS8V' dados.txt >> novo_arq
SED:
sed -nr '/^[0-9]+[-]+006[0-9]+[-]+951[0-9]+ GS8V.*$/p' dados.txt

Se quer aprender, busque por:
regex/"expressões regulares", sed, awk e grep.
Recomendo:
https://aurelio.net/regex/
https://aurelio.net/shell/canivete/
https://aurelio.net/sed/
É só procurar, material didático não falta.....

man, info e --help também ajudam:
Ex:
man grep
info grep
grep --help
______________________________________________________________________
*Isso é a minha assinatura!!!! Não faz parte da solução.*
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


Marcelo, muito obrigado pela ajuda, vou atrás do conteúdo didático sim...


4. Re: Filtro em 3 posições no arquivo

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/10/2020 - 17:19h


Sullywan escreveu:
Marcelo, muito obrigado pela ajuda, vou atrás do conteúdo didático sim...

Sullywan, foi assim que eu aprendi.....
Muitas "googladas" e muitos, man, info e --help....
Os artigo do "Júlio Cezar Neves", são muito bons.
Segue um:
http://www.dicas-l.com.br/cantinhodoshell/cantinhodoshell_20100523.php
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts