User Tools

Site Tools


wiki:linux:comandos_grupos:cmd_fluxo_dados

Nível Básico

1. Exibição de Arquivos de Texto

  • cat - Exibe o conteúdo de arquivos de texto.
    1. Exemplo de uso:
      cat arquivo.txt
    2. Descrição: Exibe todo o conteúdo de arquivo.txt no terminal.
  • head - Exibe as primeiras linhas de um arquivo.
    1. Exemplo de uso:
      head -n 10 arquivo.txt
    2. Descrição: Mostra as primeiras 10 linhas do arquivo arquivo.txt.
  • tail - Exibe as últimas linhas de um arquivo.
    1. Exemplo de uso:
      tail -n 10 arquivo.txt
    2. Descrição: Mostra as últimas 10 linhas do arquivo arquivo.txt.

2. Contagem de Linhas, Palavras e Caracteres

  • wc - Conta o número de linhas, palavras e caracteres em um arquivo.
    1. Exemplo de uso:
      wc arquivo.txt
    2. Descrição: Exibe o número de linhas, palavras e caracteres no arquivo arquivo.txt.
  • wc -l - Conta apenas o número de linhas em um arquivo.
    1. Exemplo de uso:
      wc -l arquivo.txt
    2. Descrição: Mostra o número de linhas no arquivo arquivo.txt.

3. Redirecionamento de Saída

  • > - Redireciona a saída para um arquivo, sobrescrevendo o conteúdo.
    1. Exemplo de uso:
      echo "Texto de exemplo" > saida.txt
    2. Descrição: Escreve o texto “Texto de exemplo” no arquivo saida.txt, sobrescrevendo qualquer conteúdo anterior.
  • » - Redireciona a saída para um arquivo, adicionando ao conteúdo existente.
    1. Exemplo de uso:
      echo "Novo texto" >> saida.txt
    2. Descrição: Adiciona o texto “Novo texto” ao final do arquivo saida.txt sem sobrescrever o conteúdo anterior.

4. Redirecionamento de Entrada

  • < - Usa o conteúdo de um arquivo como entrada para um comando.
    1. Exemplo de uso:
      cat < arquivo.txt
    2. Descrição: Redireciona o conteúdo de arquivo.txt como entrada para o comando cat, exibindo-o no terminal.

Nível Intermediário

1. Busca de Texto com `grep`

  • grep - Busca por padrões de texto em arquivos.
    1. Exemplo de uso:
      grep "erro" arquivo.log
    2. Descrição: Procura pela palavra “erro” no arquivo arquivo.log e exibe as linhas que contêm o termo.
  • grep -i - Realiza a busca ignorando maiúsculas e minúsculas.
    1. Exemplo de uso:
      grep -i "aviso" arquivo.log
    2. Descrição: Procura por “aviso” no arquivo arquivo.log, ignorando diferenças entre maiúsculas e minúsculas.
  • grep -r - Busca recursivamente em diretórios.
    1. Exemplo de uso:
      grep -r "falha" /var/log/
    2. Descrição: Procura pelo termo “falha” em todos os arquivos e subdiretórios dentro de /var/log/.

2. Ordenação de Conteúdo com `sort`

  • sort - Ordena as linhas de um arquivo alfabeticamente.
    1. Exemplo de uso:
      sort nomes.txt
    2. Descrição: Ordena as linhas do arquivo nomes.txt em ordem alfabética.
  • sort -r - Ordena as linhas de um arquivo em ordem reversa.
    1. Exemplo de uso:
      sort -r nomes.txt
    2. Descrição: Ordena as linhas de nomes.txt em ordem alfabética reversa.
  • sort -n - Ordena números em ordem crescente.
    1. Exemplo de uso:
      sort -n numeros.txt
    2. Descrição: Ordena as linhas de numeros.txt contendo números em ordem crescente.

3. Seleção de Colunas com `cut`

  • cut - Extrai campos específicos de um arquivo.
    1. Exemplo de uso:
      cut -d ',' -f 1 lista.csv
    2. Descrição: Extrai a primeira coluna de um arquivo CSV, onde as colunas estão separadas por vírgulas.
  • cut -c - Extrai uma faixa de caracteres de cada linha.
    1. Exemplo de uso:
      cut -c 1-10 arquivo.txt
    2. Descrição: Exibe os primeiros 10 caracteres de cada linha do arquivo arquivo.txt.

4. Substituição de Texto com `sed`

  • sed - Substitui texto em arquivos.
    1. Exemplo de uso:
      sed 's/erro/ERRO/g' arquivo.log
    2. Descrição: Substitui todas as ocorrências de “erro” por “ERRO” no arquivo arquivo.log.
  • sed -i - Substitui texto diretamente no arquivo.
    1. Exemplo de uso:
      sed -i 's/aviso/AVISO/g' arquivo.log
    2. Descrição: Substitui “aviso” por “AVISO” em todas as linhas de arquivo.log, editando o arquivo diretamente.

Nível Avançado

1. Uso de Expressões Regulares com `grep`

  • grep -E - Usa expressões regulares estendidas.
    1. Exemplo de uso:
      grep -E "[0-9]{3}-[0-9]{2}-[0-9]{4}" arquivo.txt
    2. Descrição: Busca por padrões de números de CPF (no formato 000-00-0000) em arquivo.txt usando expressões regulares.
  • grep -v - Exclui linhas que correspondem ao padrão.
    1. Exemplo de uso:
      grep -v "erro" arquivo.log
    2. Descrição: Exibe todas as linhas de arquivo.log que não contêm a palavra “erro”.

2. Comparação e Combinação de Arquivos

  • diff - Compara dois arquivos linha por linha.
    1. Exemplo de uso:
      diff arquivo1.txt arquivo2.txt
    2. Descrição: Compara arquivo1.txt com arquivo2.txt e exibe as diferenças entre eles.
  • comm - Compara arquivos linha a linha e exibe as linhas comuns e únicas.
    1. Exemplo de uso:
      comm arquivo1.txt arquivo2.txt
    2. Descrição: Exibe três colunas: as linhas exclusivas de arquivo1.txt, as exclusivas de arquivo2.txt, e as comuns a ambos.

3. Junção de Arquivos com `paste` e `join`

  • paste - Junta o conteúdo de arquivos lado a lado.
    1. Exemplo de uso:
      paste arquivo1.txt arquivo2.txt
    2. Descrição: Combina as linhas de arquivo1.txt e arquivo2.txt lado a lado, separadas por uma tabulação.
  • join - Junta arquivos baseados em um campo comum.
    1. Exemplo de uso:
      join -1 1 -2 1 arquivo1.txt arquivo2.txt
    2. Descrição: Junta os arquivos arquivo1.txt e arquivo2.txt com base no primeiro campo de cada linha (normalmente uma chave ou ID).

4. Manipulação Avançada de Texto com `awk`

  • awk '{print $1, $3}' - Extrai campos específicos de um arquivo.
    1. Exemplo de uso:
      awk '{print $1, $3}' arquivo.txt
    2. Descrição: Exibe o primeiro e o terceiro campo de cada linha em arquivo.txt. Os campos são separados por espaços ou tabulações por padrão.
  • awk -F - Define um delimitador de campo específico.
    1. Exemplo de uso:
      awk -F ',' '{print $2}' arquivo.csv
    2. Descrição: Usa a vírgula como delimitador para campos e exibe o segundo campo de cada linha no arquivo arquivo.csv.

5. Substituições Complexas com `sed`

  • sed 's/\(.*\):\(.*\)/\2: \1/' - Troca a ordem de campos delimitados.
    1. Exemplo de uso:
      sed 's/\(.*\):\(.*\)/\2: \1/' arquivo.txt
    2. Descrição: Troca de posição dois campos separados por dois pontos (':), invertendo suas posições em arquivo.txt.
  • sed '/^$/d' - Remove linhas em branco.
    1. Exemplo de uso:
      sed '/^$/d' arquivo.txt
    2. Descrição: Remove todas as linhas em branco de arquivo.txt, limpando o conteúdo do arquivo.

Nível Especializado

1. Fluxo de Dados com `xargs`

  • xargs - Passa a saída de um comando como argumento para outro.
    1. Exemplo de uso:
      cat arquivos.txt | xargs rm
    2. Descrição: Lê os nomes dos arquivos listados em arquivos.txt e os passa como argumento para o comando rm, removendo todos os arquivos listados.
  • find + xargs - Combinação poderosa para manipulação de grandes quantidades de arquivos.
    1. Exemplo de uso:
      find /home/usuario -name "*.log" | xargs gzip
    2. Descrição: Encontra todos os arquivos com a extensão .log no diretório /home/usuario e os compacta usando o comando gzip.

2. Manipulação de Fluxo de Dados com `tee`

  • tee - Divide a saída de um comando entre um arquivo e o terminal.
    1. Exemplo de uso:
      ls | tee lista.txt
    2. Descrição: Exibe a saída do comando ls no terminal e, ao mesmo tempo, a grava no arquivo lista.txt.
  • tee -a - Adiciona saída ao arquivo em vez de sobrescrevê-lo.
    1. Exemplo de uso:
      echo "Nova entrada" | tee -a log.txt
    2. Descrição: Adiciona a frase “Nova entrada” ao arquivo log.txt sem sobrescrever seu conteúdo.

3. Named Pipes (`mkfifo`)

  • mkfifo - Cria um named pipe (FIFO), que pode ser usado para comunicação entre processos.
    1. Exemplo de uso:
      mkfifo meu_pipe
    2. Descrição: Cria um pipe nomeado chamado meu_pipe, permitindo que um processo escreva dados enquanto outro lê, usando o pipe como intermediário.
  • Uso de Named Pipes - Escreve e lê dados de um named pipe.
    1. Exemplo de uso:
echo "dados" > meu_pipe & cat < meu_pipe
  1. Descrição: O comando echo escreve “dados” no pipe meu_pipe, enquanto o comando cat lê esses dados do pipe e os exibe no terminal.

4. Manipulação de Grandes Arquivos com `split` e `sort`

  • split - Divide um arquivo grande em partes menores.
    1. Exemplo de uso:
      split -l 1000 grande_arquivo.txt pequeno_arquivo_
    2. Descrição: Divide o arquivo grande_arquivo.txt em arquivos menores com 1000 linhas cada, nomeados sequencialmente como pequeno_arquivo_aa, pequeno_arquivo_ab, etc.
  • sort + split - Ordena e divide arquivos de forma eficiente.
    1. Exemplo de uso:
      sort grande_arquivo.txt | split -l 1000 - pequeno_arquivo_
    2. Descrição: Ordena o conteúdo do arquivo grande_arquivo.txt e o divide em partes menores de 1000 linhas cada, mantendo a ordenação.

5. Processamento Paralelo com `parallel`

  • parallel - Executa comandos de forma paralela em múltiplas entradas.
    1. Exemplo de uso:
      cat arquivos.txt | parallel gzip
    2. Descrição: Usa o comando gzip para compactar todos os arquivos listados em arquivos.txt simultaneamente, melhorando a eficiência ao utilizar múltiplos núcleos de CPU.
  • find + parallel - Executa comandos em paralelo sobre múltiplos arquivos.
    1. Exemplo de uso:
      find /dados -name "*.txt" | parallel wc -l
    2. Descrição: Encontra todos os arquivos *.txt no diretório /dados e conta as linhas de cada um deles em paralelo, utilizando todos os núcleos disponíveis.

6. Manipulação de Streams com `tr`

  • tr - Substitui ou remove caracteres em um fluxo de texto.
    1. Exemplo de uso:
      echo "teste de exemplo" | tr ' ' '_'
    2. Descrição: Substitui todos os espaços por underscores no fluxo de texto “teste de exemplo”, resultando em teste_de_exemplo.
  • tr -d - Remove caracteres específicos.
    1. Exemplo de uso:
      cat arquivo.txt | tr -d '\n'
    2. Descrição: Remove todas as quebras de linha (\n) do arquivo arquivo.txt, juntando o conteúdo em uma única linha.
wiki/linux/comandos_grupos/cmd_fluxo_dados.txt · Last modified: by Wiki Administrator