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

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

Re: [shell-script-pt] comparar 2 arquivos gerando um terceiro com as coi


From: Julio C. Neves
Subject: Re: [shell-script-pt] comparar 2 arquivos gerando um terceiro com as coicidencias
Date: Thu, 8 Jul 2021 16:53:28 -0300

Olá Pere,
Primero arriesgo un Portuñol e depois vai em Português:)

Son diferentes. $(...) o `...` dan prioridad de ejecución al comando que contiene. <(...) o >(...) ejecutan el comando dentro y envían su salida (<(...)) o entrada (>(...)) como si fueran un archivo de named pipe.
Algunos comandos, como paste, por ejemplo, necesitan archivos en la entrada. Vea:
$ seq 3> archivo
$ paste -s archivo
1    2    3
Correcto, pero pongamos la salida del comando seq en una variable y hagamos el mismo paste después:
$ Var = $(seq 3)
$ paste -s "$Var"
paste: '1' $ '\ n''2' $ '\ n''3': Arquivo ou diretório não encontrado
$ paste -s <(echo "$ Var")
1    2    3

$ cat <(ls -l x)
-rw-r--r-- 1 julio julio 42 Jul  8 11:07 x
$ ls -l >(cat)
l-wx------ 1 julio julio 64 Jul  8 16:51 /dev/fd/63 -> pipe:[2339818]

Em Português:
São diferentes. $(...) ou `...` dão prioridade de execução ao comando no seu interior. <(...) ou >(...) executam o comando no interior e mandam sua saída (<(...)) ou entrada (>(...)) como se fossem um arquivo do tipo named pipe.
Alguns comandos, como o paste, p.ex. precisam de arquivos na entrada. Veja:
$ seq 3 > arq
$ paste -s arq
1    2    3
Correto, mas vamos botar a saída do comando seq numa variável e fazer o mesmo paste após:
$ Var=$(seq 3)
$ paste -s "$Var"
$ paste -s "$Var"
paste: '1'$'\n''2'$'\n''3': Arquivo ou diretório não encontrado
$ paste -s <(echo "$Var")
1    2    3

$ cat <(ls -l x)
-rw-r--r-- 1 julio julio 42 Jul  8 11:07 x
$ ls -l >(cat)
l-wx------ 1 julio julio 64 Jul  8 16:51 /dev/fd/63 -> pipe:[2339818]

Abraços,
Julio
» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?

Também damos treinamento em sua empresa
em qualquer cidadecom certificado e nota fiscal.








Em qui., 8 de jul. de 2021 às 16:06, T.Collons <t.collons@gmail.com> escreveu:

Prezado Julio


 A construção <(....) e o mesmo que $(...) ou `....`?


El 7/7/21 a les 1:44, Julio C. Neves ha escrit:
Grande China, saudades amigo... Com o comm seria o mais rápido, mas o Shell tem recurso que não acaba mais. O Casanova, que é muito bom de Shell, já te deu uma solução com loop de while, mas veja essa:

$ grep -f <(echo "^$(cut -f1 -d, ARQ2),") ARQ1

O grep -f ARQERs ARQUIVO pesquisa as ERs do arquivo ARQERs em ARQUIVO. A construção <(...) chama-se substituição de processos e ela faz com que o conteúdo dos parênteses seja vista como oriunda de um arquivo tipo named pipe. Me aproveitei disso para colocar um ^ no início e uma vírgula no final do nome, de forma que um Luis Carlos não case nem com Luis nem com Carlos.

Um testezinho:
$ cat > ARQ1
Julio,111
China,222
Tux,333
$ cat > ARQ2
GNU,444
Tux,555
BSD,666
$ grep -f <(echo "^$(cut -f1 -d, ARQ2),") ARQ1
Tux,333

SuShellso e abraços,
Julio
» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?

Também damos treinamento em sua empresa
em qualquer cidadecom certificado e nota fiscal.








Em ter., 6 de jul. de 2021 às 19:22, China <chinabhz@gmail.com> escreveu:
Sou eu mesmo amigo Júlio!!

Eu cheguei a tentar o comm também, mas não consegui.


Em ter, 6 de jul de 2021 19:06, Julio C. Neves <julio.neves@gmail.com> escreveu:
Por acaso estou falando com o China, grande divulgador do Sw Livre e meu amigão?

China dá uma olhada na sintaxe do cmd comm. É a resposta imediata dos teus problemas.

Abraços,
Julio
» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?

Também damos treinamento em sua empresa
em qualquer cidadecom certificado e nota fiscal.








Em ter., 6 de jul. de 2021 às 15:53, China <chinabhz@gmail.com> escreveu:
Colegas, tenho 2 arquivos csv com a seguinte estrutura:

file1.csv
Nome, email

file2.csv
nome, setor

O arquivo file1.csv contém 5.000 registros, enquanto o file2 contem 77
registros. O que eu preciso é comparar esses 2 arquivos e gerar um
terceiro somente com os e-mails dos nomes que coincidem nos 2
arquivos. ficaria:

file3.csv
nome, email

Tentei com o diff mas consegui apenas suprimir as linhas coincidentes,
gerando um arquivo com os nomes e emails que não se repetem. Tentei
com awk e sed mas faltou conhecimento para adaptar os exemplos que a
pesquisa google me trouxeram. Por isso peço ajuda de vocês.

--
Enviado de um dispositivo móvel

_______________________________________________
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
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: shell-script-pt@nongnu.org
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: shell-script-pt@nongnu.org
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: shell-script-pt@nongnu.org
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.
--



Pere

t.collons@gmail.com




------------------------------------

AVIS LEGAL

Nota de confidencialitat: Aquest missatge podria contenir missatges d'empresa i altre informació confidencial tutelada per les lleis de Europea i altres estats, Si Vostè el rep per error o sense ser una de les persones esmenades a la capçalera, haurà de destruir-lo sense copiar-lo ni revelar-l'ho o qualsevol altre acció relacionada amb el contingut del missatge i notificar-ho per correu electrònic a l'emissor del missatge.

Les persones o entitats que incompleixin els deures de confidencialitat podran ésser perseguides davant dels Tribunals de Justícia sota l'empar de la legislació civil, penal i administrativa nacional i internacional.  

Gracies per la seva cooperació.

------------------------------------

LEGAL NOTICE

Confidentiality notice: This mail may include business and other confidential information protected under the laws of and other territories. if you are not one of the intended recipients of the message, you are legally obliged to delete the message content. Furthermore, you are kindly requested to report immediately the incident to the sender.

Breach of confidentiality duties is a serious criminal offence in and other territories. Offenders shall be legally prosecuted worldwide. 

Thank you for your cooperation.



_______________________________________________
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
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]