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: Blau Araujo
Subject: Re: [shell-script-pt] comparar 2 arquivos gerando um terceiro com as coicidencias
Date: Thu, 8 Jul 2021 17:13:35 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

Salve!

Uma substituição de processos -- <(...) ou >(...) -- só se assemelha à substituição de comandos -- $(...) ou `...` -- no que diz respeito ao que acontece dentro dos parêntesis: a lista de comandos e pipelines serão executadas e produzirão saídas que serão utilizadas numa expansão, o que muda é o que será expandido na linha do comando.

- Substituições de comandos:

Na linha de comando resultante, nós temos essencialmente a string correspondente à saída dos comandos entre os parêntesis.

Exemplo:

```
:~$ echo $(whoami) # Linha expandida: echo blau
blau
```

- Substituições de processos:

Na linha de comando resultante, nós teremos um descritor de arquivos por onde a saída dos comandos entre os parêntesis poderá ser acessada (como o conteúdo de um arquivo).

```
:~$ grep banana <(echo banana; echo laranja; echo abacate)
banana
```

A linha expandida foi:

```
grep banana /dev/fd/63
```

Onde `/dev/fd/63` (um link para um pipe) fará o papel do arquivo por onde o comando `grep` terá acesso ao fluxo de saída da lista de comandos, o que equivale a:

```
:~$ grep banana <<< $(echo banana; echo laranja; echo abacate)
banana
```

Ou então...

```
:~$ (echo banana; echo laranja; echo abacate) | grep banana
banana
```

Com a diferença de que, nos últimos dois casos, o `grep` receberá os dados pela entrada padrão (também linkado a um pipe).


Abraços!

Blau Araujo
-----------------------------
https://debxp.org
https://blauaraujo.com

Em 08/07/2021 16:03, T.Collons 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?*
*Veja detalhes** em:****https://educacao.dicas-l.com.br/shell-linux* <https://educacao.dicas-l.com.br/shell-linux>
*
*
*Também damos treinamento em sua empresa*
*em qualquer cidade**, **com certificado **e nota fiscal.*
*
*







Em ter., 6 de jul. de 2021 às 19:22, China <chinabhz@gmail.com <mailto: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 <mailto: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?*
        *Veja
        detalhes** em:****https://educacao.dicas-l.com.br/shell-linux*
        <https://educacao.dicas-l.com.br/shell-linux>
        *
        *
        *Também damos treinamento em sua empresa*
        *em qualquer cidade**, **com certificado **e nota fiscal.*
        *
        *







        Em ter., 6 de jul. de 2021 às 15:53, China <chinabhz@gmail.com
        <mailto: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
            <mailto:shell-script-pt@nongnu.org>
            Para se inscrever ou desinscrever acesse:
            https://lists.nongnu.org/mailman/listinfo/shell-script-pt
            <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/
            <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
        <mailto:shell-script-pt@nongnu.org>
        Para se inscrever ou desinscrever acesse:
        https://lists.nongnu.org/mailman/listinfo/shell-script-pt
        <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/
        <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
    <mailto:shell-script-pt@nongnu.org>
    Para se inscrever ou desinscrever acesse:
    https://lists.nongnu.org/mailman/listinfo/shell-script-pt
    <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/
    <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, 
acessehttps://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 <mailto:sesmorralles@gmail.com>



<https://www.google.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]