Como apagar alguns numero específicos de um arquivo txt

1. Como apagar alguns numero específicos de um arquivo txt

Rubens Leonardo de Oliveira Lima Torres
rubinhotorres

(usa Debian)

Enviado em 22/12/2020 - 11:53h

Bom dia gente,

Tenho um arquivo em txt que tem números de NFe os quais o sistema não deixa puxar o relatório sem que eles não apareçam.
E gostaria de saber como remover esses numero por espaço em branco usando um base de dados com os números os quais quero apara.
Ex: Tenho uma base em txt com esses números a baixo!
392190
391965
391977
392148
391919
391912
392084
392153
392211

E esses mesmos números estão no relatório o qual quero remover ou substituir por espaços em branco pois não quero que eles apareçam no relatório.
Segue em anexo o relatório o qual quero eliminar os números.
Como eu poderia eliminá-los via terminal.

Fico grato pela força


  


2. Re: Como apagar alguns numero específicos de um arquivo txt

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 22/12/2020 - 12:50h

Não entendi muito bem a descrição do problema, mas pelo título imagino q vc tenha dois arquivos e deseja retirar do 1o as linhas numéricas que aparecerem no 2o.
Se for isso vc pode fazer (arq1.txt e arq2.txt como exemplos)

cat arq1.txt arq2.txt | sort | uniq -u


3. Re: Como apagar alguns numero específicos de um arquivo txt

Rubens Leonardo de Oliveira Lima Torres
rubinhotorres

(usa Debian)

Enviado em 22/12/2020 - 14:20h

leandropscardua escreveu:

Não entendi muito bem a descrição do problema, mas pelo título imagino q vc tenha dois arquivos e deseja retirar do 1o as linhas numéricas que aparecerem no 2o.
Se for isso vc pode fazer (arq1.txt e arq2.txt como exemplos)

cat arq1.txt arq2.txt | sort | uniq -u



DESCULPA!

Acabei não me expressando claramente.
Mas foi isso que você mesmo falou o que eu quero é tirar uma sequencia de numerações que se encontra dentro do arquivo o qual quero remove.
O arq1.txt é o qual tem os números das notas a qual quero remover do arq2.txt. Sendo que no arq1.txt os números estão um a baixo do outro e no arq2.txt não esta na mesmo sequencia.
Vou dar outro exemplo do que eu quero fazem ok.
EX.
Dentro do arq1.txt tem;
384752
384752
384750
384743
384736
Quero algum commando ou script que busque a primeira linha do arq1.txt ''384752'' e busque dentro do arq2.txt e substitua por espaços em branco.
E assim sucessivamente para as outras numerações.

Tentei leandro o comando o qual vc postou mas não obtive o resultado esperado mas valeu pela dica cara.

Vlw show


4. Re: Como apagar alguns numero específicos de um arquivo txt

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 22/12/2020 - 17:04h

rubinhotorres escreveu:
DESCULPA!

Acabei não me expressando claramente.
Mas foi isso que você mesmo falou o que eu quero é tirar uma sequencia de numerações que se encontra dentro do arquivo o qual quero remove.
O arq1.txt é o qual tem os números das notas a qual quero remover do arq2.txt. Sendo que no arq1.txt os números estão um a baixo do outro e no arq2.txt não esta na mesmo sequencia.
Vou dar outro exemplo do que eu quero fazem ok.
EX.
Dentro do arq1.txt tem;
384752
384752
384750
384743
384736
Quero algum commando ou script que busque a primeira linha do arq1.txt ''384752'' e busque dentro do arq2.txt e substitua por espaços em branco.
E assim sucessivamente para as outras numerações.

Boa tarde Rubinho.
Segue sugestão:
cat arq01
384756
384759
384761
384753
384760
cat arq02
384750
384751
384752
384754
384755
384757
384758
384762
384763
384764
regex=$(paste -sd "|" arq01)
sed -ri "s/(${regex})/      /" arq02 


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________



5. Re: Como apagar alguns numero específicos de um arquivo txt

Rubens Leonardo de Oliveira Lima Torres
rubinhotorres

(usa Debian)

Enviado em 23/12/2020 - 08:35h

msoliver escreveu:

rubinhotorres escreveu:
DESCULPA!

Acabei não me expressando claramente.
Mas foi isso que você mesmo falou o que eu quero é tirar uma sequencia de numerações que se encontra dentro do arquivo o qual quero remove.
O arq1.txt é o qual tem os números das notas a qual quero remover do arq2.txt. Sendo que no arq1.txt os números estão um a baixo do outro e no arq2.txt não esta na mesmo sequencia.
Vou dar outro exemplo do que eu quero fazem ok.
EX.
Dentro do arq1.txt tem;
384752
384752
384750
384743
384736
Quero algum commando ou script que busque a primeira linha do arq1.txt ''384752'' e busque dentro do arq2.txt e substitua por espaços em branco.
E assim sucessivamente para as outras numerações.

Boa tarde Rubinho.
Segue sugestão:
cat arq01
384756
384759
384761
384753
384760
cat arq02
384750
384751
384752
384754
384755
384757
384758
384762
384763
384764
regex=$(paste -sd "|" arq01)
sed -ri "s/(${regex})/      /" arq02 


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________

Bom dia msoliver

Criei o scipt com os caminhos dos meus arquivos e me retornou a seguinte msg qunado executei.

SCRIPT
regex=$(paste -sd "|" /home/mustang/schin/BaseSchin.txt)
sed -ri "s/(${regex})/ /"/home/mustang/schin/schin.txt

Msg de retorno: sed: -e expressão #1, caractere 21771: opção desconhecida para o comando `s' (s///?)
O que posso fazer agora?

Desde já fico grato pelas dicas de todos.


6. Re: Como apagar alguns numero específicos de um arquivo txt

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 23/12/2020 - 17:40h

rubinhotorres escreveu:
Bom dia msoliver

Criei o scipt com os caminhos dos meus arquivos e me retornou a seguinte msg qunado executei.

SCRIPT
regex=$(paste -sd "|" /home/mustang/schin/BaseSchin.txt)
sed -ri "s/(${regex})/ /"/home/mustang/schin/schin.txt

Msg de retorno: sed: -e expressão #1, caractere 21771: opção desconhecida para o comando `s' (s///?)
O que posso fazer agora?

Desde já fico grato pelas dicas de todos.

Boa tarde Rubinho,
testei + uma vez aqui e funcionou a contento.
Testes efetuados:
Gera arq2.tst, com 100000 linhas
seq -w 100000 > arq2.txt
Gera arq2.txt
shuf arq2.txt -n15000 > arq1.txt #Com 20000 linhas acusou erro: bash: /usr/bin/sed: Lista de argumentos muito longa
regex=$(paste -sd"|" arq1.txt)
sed -ri "s/${regex}/ /" arq2.txt
grep -Ec '^ $' arq2.txt #Casa linhas com a alteração feita pelo comando sed, foram alteradas 15000 linhas, correto!
15000

Poste a saída de:
file /home/mustang/schin/BaseSchin.txt
file /home/mustang/schin/schin.txt
echo -e "Shell: $SHELL\nVersão: $BASH_VERSION\nTERM: $TERM\nSO:\n$(lsb_release -a 2>/dev/null)"


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts