HPR4687: Curiosidades UNIX #11 - Mesclando Arquivos

Por Vance21/07/2026 às 00:0040 visualizações
Foto: CC BY-SA / Hacker Public Radio
🎙 Vance · Hacker Public Radio

Este programa foi marcado como Limpo pelo anfitrião.

Éter

Esta série é dedicada a explorar pequenos objetos de valor — e, ocasionalmente, úteis — escondidos nos cantos empoeirados de sistemas operacionais semelhantes ao UNIX.

Eu frequentemente me pego pegando o ...A reportagem a seguir foi traduzida do inglês para o português brasileiro: Texto: "Corte"Utilidade ao escrever scripts para extrair uma peça de dado de uma linha, ou para selecionar campos específicos de um arquivo de log. Embora eu esteja familiarizado com seu equivalente,Aqui está a tradução do texto para o português brasileiro: "paste" (em português, "colar" ou "inserir")Eu não a utilizo muito frequentemente porque, geralmente, não preciso de suas funcionalidades.

Talvez isso tenha a ver com o fato de eu raramente trabalhar com arquivos de texto contendo listas. Para listas mais curtas, geralmente acabo usando uma planilha e, para listas maiores, um banco de dados relacional. Ambos são ferramentas valiosas com seus próprios pontos fortes e fracos, mas é bom também conhecer utilitários padrão para trabalhar com listas. Após carregar o UNIX Curio #8 (Episódio HPR 4657), senti que talvez tivesse sido muito desdenhoso doutilitário commnesse episódio e deveria falar mais sobre ferramentas úteis na gestão de listas.

Não me encontro frequentemente usando paste 1, mas posso explicar como funciona. Em resumo, é o oposto grosseiro doA reportagem a seguir foi traduzida do inglês para o português brasileiro: Texto: "Corte"—quando fornecido com vários arquivos como argumentos, ele monta a primeira linha de cada um, separada por tabulações, depois a segunda linha, e assim por diante. Em vez de tabulações, pode-se escolher um delimitador diferente.A cidade de São Paulo registrou um aumento significativo no número de casos de COVID-19 nas últimas semanas, segundo dados divulgados pela Secretaria de Saúde do Estado de São Paulo. Com a expansão do variante Delta, a taxa de infecção aumentou em 30% em comparação ao mês anterior. As autoridades de saúde alertam para a necessidade de medidas de prevenção, incluindo o uso de máscaras, distanciamento social e vacinação. O governador de São Paulo, João Doria, enfatizou a importância da vacinação em massa para controlar a propagação do vírus. Até o momento, mais de 12 milhões de doses da vacina foram aplicadas na região metropolitana de São Paulo, com uma taxa de cobertura de 65%. As autoridades incentivam a população a se vacinar para alcançar a imunidade coletiva.opção. Outra opção éTexto: - Segundo o relatório anual da Organização Mundial da Saúde (OMS), o número de casos de diabetes tipo 2 aumentou 42% na última década. - O estudo destaca o impacto crescente da doença em todo o mundo, com taxas de incidência mais altas em países de renda baixa e média. - A OMS atribui esse aumento ao envelhecimento da população, mudanças no estilo de vida e fatores genéticos. - A diabetes tipo 2 é uma doença crônica que afeta a maneira como o corpo regula o açúcar no sangue. - O relatório recomenda uma abordagem multifacetada para combater a epidemia de diabetes, incluindo educação sobre nutrição, acesso a cuidados de saúde e promoção de ambientes ativos., que troca linhas e colunas para que o conteúdo de cada arquivo nomeado apareça em uma única linha. EmboraAqui está a tradução do texto para o português brasileiro: "paste" (em português, "colar" ou "inserir")Em si mesmo, não se qualifica como um "UNIX Curio" na minha opinião, mas há uma característica que sim: um hífen pode ser passado como argumento várias vezes. Neste caso especial, a saída é tomada linha por linha da entrada padrão, mas é distribuída em tantas colunas quanto hífens houver.

Exemplo de uso colar para transformar a saída de listar em colunas. Como essas colunas são separadas por tabs, elas não se alinham necessariamente quando um nome de arquivo tem oito ou mais caracteres. -1 o listar não é necessário para o segundo comando, pois esse comportamento é implícito quando a saída não vai para um terminal. -C Opção para quando a saída vai para um terminal. ls Normalmente oferece uma saída mais agradável visualmente em um terminal - também lista em ordem crescente por coluna. (A maioria das implementações define como padrão) -C Quando a saída é para um terminal. O exemplo do paste Como no exemplo, para itens em ordem crescente ao longo das linhas. O comando `ls -x` lista os arquivos no diretório atual com detalhes. Em vez de uma ação específica, este texto descreve uma estrutura de diretórios.

`ls -1 /proc/net` exibe uma lista de interfaces de rede no sistema.

O comando `anycast6`, quando executado em `/proc/net`, mostra informações sobre protocolos de rede.A ferramenta `paste` é usada para combinar e formatar dados de arquivos de texto.O comando `paste` tem limitações: os arquivos devem estar em ordem e, se algum arquivo estiver faltando, deve haver uma linha em branco para garantir a correspondência das linhas subsequentes.Os arquivos não precisam estar em ordem alfabética, mas devem manter a mesma ordem relativa.Os episódios do HPR (presumivelmente uma série ou podcast) podem ser conferidos para mais informações. 962e 4201para obter mais informações sobre ocoleuma utilidade.

Exemplo de uso cole com arquivos onde alguns valores estão vazios. Bob trabalha em casa, então não tem um escritório atribuído, e o laboratório onde Carol trabalha não tem telefone. Isso se baseia no fato de que o mesmo número de linha em cada arquivo se refere à mesma pessoa/entrada.

$ cat nomes

Nosso segundo Curio de UNIX para hoje éuma utilidade chamada join 2, que tem um pouco mais de sofisticação. Ela opera em dois arquivos, que podem ter múltiplas colunas, e os combina usando o campo de junção. Por padrão, a primeira coluna/campo de cada arquivo é o campo de junção, e apenas entradas que existem em ambos os arquivos são impressas. -1e -2opções podem ser usadas para juntar em um campo diferente, e-oseleciona campos específicos para saída. Para fazer com que linhas com entradas faltantes também apareçam, você precisa usar oUma opção, mas uma string vazia real com separador não será impressa a menos queO separador de campo padrão é um ou mais "espaços" na localidade atual - para a localidade POSIX, isso significa um espaço ou uma tabulação horizontal. -o-t também estiver presente e incluir o campo.

O padrão de separador de campo é um ou mais "espaços" na localidade atual - para a localidade POSIX, isso significa um espaço ou uma tabulação horizontal.A opção -tseleciona um caractere diferente e também remove o tratamento de múltiplas ocorrências como um único separador, permitindo que haja um campo vazio em um ou ambos os arquivos. Por padrão, um único espaço é usado para separar os campos na saída.-tDado, o mesmo caractere é utilizado para separar campos tanto na entrada quanto na saída. Seria necessário redirecionar a saída por meio de outra ferramenta, como ...A cidade de São Paulo está se preparando para receber um evento tecnológico de grande escala, a Semana da Inovação. O evento, que acontece de 15 a 19 de novembro, reunirá empreendedores, investidores e especialistas de todo o mundo para discutir as últimas tendências e inovações no setor. Com o tema "O Futuro é Agora", a Semana da Inovação promete ser uma plataforma para a troca de ideias e a colaboração entre startups, empresas estabelecidas e instituições de pesquisa. As palestras, workshops e painéis abordarão tópicos como inteligência artificial, blockchain, sustentabilidade e o impacto da tecnologia na sociedade. A organização do evento destaca a importância de São Paulo como um centro emergente de inovação e tecnologia na América Latina. A cidade tem atraído investimentos significativos em startups e tem se tornado um polo para talentos tecnológicos. Espera-se que milhares de participantes comparecam ao evento, que será realizado em vários locais da cidade, incluindo centros de convenções e espaços de coworking. A Semana da Inovação é uma oportunidade para a comunidade tecnológica local se conectar e colaborar com especialistas internacionais, promovendo o crescimento e a inovação na região.Se você desejava ter um separador diferente na saída.

O texto fornecido está incompleto. Para realizar a tradução para o português brasileiro, é necessário que o texto completo seja fornecido. Por favor, inclua o restante do conteúdo para que eu possa ajudá-lo(a) da melhor maneira possível.Junte-seutilidade pode ser uma melhoria em relação aTexto: "paste" Tradução: "colar"Em alguns casos, como o campo de junção torna um pouco mais fácil identificar quais entradas correspondem entre os arquivos. É limitado a operar apenas em dois arquivos (um dos quais pode ser a entrada padrão), então combinar mais do que isso exige ou criar arquivos intermediários temporários ou encadear juntos.junte-secomandos em uma pipeline. Outra exigência é que todos os arquivos devem estar já classificados na localidade atual.

Exemplo que demonstra como junte-se pode ser usado com duas listas separadas por tabulação. junte-se para classificar usando a localidade C (POSIX) em vez do que pode estar definido no seu ambiente. O "@" na linha de cabeçalho não tem significado especial; está lá apenas para garantir que seja classificado antes de letras ou números (na localidade C; pode não funcionar em outras localidades). Note que, se -t Não foram especificados.Lista de pl (plist).Seria tratado como tendo três campos devido ao espaço que separa o código do país do restante do número de telefone.

`$ export tab="$(printf '\t')"; # Para usar mais facilmente caracteres de tabulação abaixo

Descrição breve para join.Junte-seJoin.Join: um operador que combina linhas de duas ou mais tabelas com base em uma coluna relacionada.Poderia ser adequado para operações simples.

Nosso último Curio UNIX de hoje está relacionado ao tipo de utilidade 3Embora, como você pode esperar, seja bem conhecido por sua capacidade de ordenar dados, ele tem outra característica mais obscura. Quando usado com a opção-m, em vez de ordenar os arquivos passados como argumentos, ele os mescla. Espera-se que todos os arquivos já estejam ordenados — uma vez combinados, a lista de saída também será ordenada. A ordem em que os arquivos são nomeados nãoNão.Não importa; não é necessário que o conteúdo do primeiro arquivo comece antes do segundo, apenas que ambos estejam organizados.

R$ cat mulheres
Alice
Carol
R$ cat homens
Bob
Dave
R$ sort -m homens mulheres
Alice
Bob
Carol
Dave

Imagine que você organiza um evento anual e tem uma lista pré-ordenada separada de endereços de e-mail de participantes para cada um dos últimos três anos. Você está planejando este ano's evento e quer enviar um anúncio para todas essas pessoas, pois elas provavelmente estarão interessadas. O comandoOrdene -m -u 2023lista 2024lista 2025listaEu geraria uma lista combinada que você pode usar para sua campanha de e-mail. Como é provável que algumas pessoas tenham participado em mais de um ano, inclui os anos em que eles estiveram presentes. -uOpção — ela remove quaisquer entradas duplicadas.

Provavelmente não é uma surpresa que autilidadetenha surgido cedo - estava presente na Primeira Edição do UNIX em 1971, embora não tenhaobtido a funcionalidade de fusão até a Quinta Edição 4em 1973. O queme surpreendeufoi que ambascortarame Aqui está a tradução do texto para o português brasileiro: "paste" (em português, "colar" ou "inserir") Não apareceu até 1980 com o System III. 5E foram precedidos, na verdade, por... Junte-se que estava na sétima edição do UNIX 6De 1979. Eu supus que, pelo menos,A reportagem a seguir foi traduzida do inglês para o português brasileiro: Texto: "Corte"Teria sido muito mais cedo, considerando sua utilidade e o quão firmemente estabelecida ela está, mas suponho que simplesmente parece ter estado conosco para sempre.Parece.Parece ter sido com a gente para sempre.

Como mencionado, eu normalmente não gerencio dados como arquivos de texto contendo listas, e provavelmente não vou começar a usar a utilidade de junção ou essas funcionalidades de colar.Junção.Utilidade de junção ou.Colar.Essas.OrdenarSim, é muito útil saber que eles existem e como funcionam. Espero que este episódio tenha ensinado um pouco sobre eles.

Referências:

  1. Especificação de Colarhttps://pubs.opengroup.org/onlinepubs/9699919799/utilities/paste.html
  2. Especificação de Junçãohttps://pubs.opengroup.org/onlinepubs/9699919799/utilities/join.html
  3. Especificação de OrdenaçãoO texto fornecido parece ser um link para um documento técnico ou página da web, e não um texto jornalístico. Portanto, não há uma tradução a ser feita, uma vez que não contém conteúdo narrativo ou informativo típico de um artigo jornalístico. Se houver um texto jornalístico específico que você queira traduzir, por favor, forneça-o.
  4. Um Leitor de UNIX para Pesquisa: Quinta Edição manual de página de sortO texto original, extraído de uma pesquisa em formato Unix, parece estar em inglês e não possui uma estrutura clara de artigo jornalístico. Portanto, não há uma tradução direta para o português brasileiro neste contexto. No entanto, se houver trechos específicos que você deseja traduzir, por favor, forneça o conteúdo exato e eu o auxiliarei.
  5. Página de manual do Sistema IIIO texto fornecido parece ser um link para um arquivo de documentação técnica, especificamente para o comando "paste" em um sistema operacional. A tradução para o português brasileiro seria: Texto: https://www.tuhs.org/cgi-bin/utree.pl?arquivo=SysIII/usr/src/man/man1/paste.1
  6. Manual de página da sétima edição do UNIXO texto fornecido parece ser um link para um artigo ou recurso online. A tradução para o português brasileiro seria: Texto: https://man.cat-v.org/unix_7th/1/join

Forneçafeedbacknesta edição.

Fonte
Hacker Public Radio
Abrir original ↗

Conteúdo traduzido automaticamente por máquina.

Esta notícia foi útil?

Debates 0

Seja o primeiro a contribuir com o debate.

Difunda suas informações e promova seu argumento

Não se acanhe de publicar alguma informação ou dado que possa ser positivo ou útil.

Para participar do debate, entre com sua conta ou crie uma gratuita.