12 comandos úteis para filtrar o texto para operações de arquivo eficazes no Linux

12 comandos úteis para filtrar o texto para operações de arquivo eficazes no Linux

Neste artigo, revisaremos uma série de ferramentas de linha de comando que atuam como filtros no Linux. A filtro é um programa que lê a entrada padrão, executa uma operação sobre ele e escreve os resultados para a saída padrão.

Por esse motivo, ele pode ser usado para processar informações de maneiras poderosas, como a saída de reestruturação para gerar relatórios úteis, modificar o texto em arquivos e muitas outras tarefas de administração do sistema.

Com isso dito, abaixo estão alguns dos filtros de arquivo ou texto úteis no Linux.

1. Comando AWK

Awk é uma linguagem notável de varredura e processamento de padrões, ele pode ser usado para criar filtros úteis no Linux. Você pode começar a usá -lo lendo nossa série AWK Part 1 à Parte 13.

Além disso, também leia o Awk Página do homem para obter mais informações e opções de uso:

$ Man Awk 

2. Comando sed

sed é um poderoso editor de fluxo para filtrar e transformar texto. Já escrevemos dois artigos úteis sobre sed, que você pode passar por isso aqui:

  1. Como usar o comando GNU 'sed' para criar, editar e manipular arquivos no Linux
  2. 15 dicas e truques de comando 'sed' úteis para tarefas diárias de administração do sistema Linux

A página do Sed Man adicionou opções e instruções de controle:

$ Man sed 

3. Comandos Grep, Egrep, FGREP, RGREP

Esses filtros são linhas de saída que correspondem a um determinado padrão. Eles leem linhas de um arquivo ou entrada padrão e imprimem todas as linhas correspondentes por padrão para saída padrão.

Observação: O programa principal é o Grep, as variações são simplesmente as mesmas que o uso de opções de grep específicas como abaixo (e elas ainda estão sendo usadas para compatibilidade com versões anteriores):

$ egrep = grep -e $ fGREP = grep -f $ rgrep = grep -r 

Abaixo estão alguns comandos básicos do Grep:

[Email protegido] ~ $ Grep "Aaronkilik" /etc /passwd Aaronkilik: x: 1001: 1001 ::/home/aaronkilik: [Email protegido] ~ $ gato /etc /passwd | Grep "Aronkilik" Aaronkilik: x: 1001: 1001 ::/home/aaronkilik: 

Você pode ler mais sobre o que é a diferença entre Grep, Egrep e FGREP no Linux?.

4. comando de cabeça

cabeça é usado para exibir as primeiras partes de um arquivo, ele gera o primeiro 10 linhas por padrão. Você pode usar o -n NUM FAGN para especificar o número de linhas a serem exibidas:

[Email protegido] ~ $ cabeça/var/log/auth.registro 2 de janeiro 10:45:01 Tecmint Cron [3383]: pam_unix (cron: sessão): sessão aberta para raiz do usuário por (uid = 0) 2 de janeiro 10:45:01 Tecmint Cron [3383]: Pam_unix (cron: sessão) : Sessão fechada para a raiz do usuário 2 de janeiro 10:51:34 Tecmint sudo: Tecmint: tty = desconhecido; Pwd =/home/tecmint; Usuário = root; Comando =/usr/lib/linuxmint/mintupdate/checkapt.Py 2 de janeiro 10:51:34 Tecmint sudo: pam_unix (sudo: sessão): sessão aberta para o usuário raiz por (uid = 0) 2 de janeiro 10:51:39 Tecmint sudo: pam_unix (sudo: sessão): sessão fechada para usuário Raiz 2 de janeiro 10:55:01 Tecmint Cron [4099]: pam_unix (cron: sessão): sessão aberta para o usuário raiz por (uid = 0) 2 de janeiro 10:55:01 Tecmint Cron [4099]: Pam_unix (Cron: Session: Session: ): Sessão fechada para a raiz do usuário 2 de janeiro 11:05:01 Tecmint Cron [4138]: pam_unix (cron: sessão): sessão aberta para raiz do usuário por (uid = 0) 2 de janeiro 11:05:01 Tecmint Cron [4138] : pam_unix (cron: sessão): sessão fechada para o usuário raiz 2 de janeiro 11:09:01 Tecmint Cron [4146]: pam_unix (cron: sessão): sessão aberta para o usuário raiz por (uid = 0) [Email protegido] ~ $ Cabeça -n 5/var/log/auth.registro 2 de janeiro 10:45:01 Tecmint Cron [3383]: pam_unix (cron: sessão): sessão aberta para raiz do usuário por (uid = 0) 2 de janeiro 10:45:01 Tecmint Cron [3383]: Pam_unix (cron: sessão) : Sessão fechada para a raiz do usuário 2 de janeiro 10:51:34 Tecmint sudo: Tecmint: tty = desconhecido; Pwd =/home/tecmint; Usuário = root; Comando =/usr/lib/linuxmint/mintupdate/checkapt.Py 2 de janeiro 10:51:34 Tecmint sudo: pam_unix (sudo: sessão): sessão aberta para o usuário raiz por (uid = 0) 2 de janeiro 10:51:39 Tecmint sudo: pam_unix (sudo: sessão): sessão fechada para usuário raiz 

Aprenda a usar o comando principal com comandos de cauda e gato para uso efetivo no Linux.

5. Comando da cauda

cauda produz as últimas partes (10 linhas por padrão) de um arquivo. Use o -n interruptor NUM para especificar o número de linhas a serem exibidas.

O comando abaixo será lançado o último 5 Linhas do arquivo especificado:

[Email protegido] ~ $ Tail -N 5/var/log/auth.registro 6 de janeiro 13:01:27 Tecmint SSHD [1269]: Servidor ouvindo em 0.0.0.0 porta 22. 6 de janeiro 13:01:27 Tecmint SSHD [1269]: Servidor ouvindo :: Porta 22. 6 de janeiro 13:01:27 TECMINT SSHD [1269]: recebido suspiro; reiniciando. 6 de janeiro 13:01:27 Tecmint SSHD [1269]: Servidor ouvindo em 0.0.0.0 porta 22. 6 de janeiro 13:01:27 Tecmint SSHD [1269]: Servidor ouvindo :: Porta 22. 

Adicionalmente, cauda tem uma opção especial -f para assistir a alterações em um arquivo em tempo real (especialmente arquivos de log).

O comando a seguir permitirá que você monitore as alterações no arquivo especificado:

[Email protegido] ~ $ cauda -f/var/log/auth.registro 6 de janeiro 12:58:01 Tecmint SSHD [1269]: Servidor ouvindo :: Port 22. 6 de janeiro 12:58:11 Tecmint SSHD [1269]: recebido suspiro; reiniciando. 6 de janeiro 12:58:12 Tecmint SSHD [1269]: Servidor ouvindo em 0.0.0.0 porta 22. 6 de janeiro 12:58:12 Tecmint SSHD [1269]: Servidor ouvindo :: Porta 22. 6 de janeiro 13:01:27 TECMINT SSHD [1269]: recebido suspiro; reiniciando. 6 de janeiro 13:01:27 Tecmint SSHD [1269]: Servidor ouvindo em 0.0.0.0 porta 22. 6 de janeiro 13:01:27 Tecmint SSHD [1269]: Servidor ouvindo :: Porta 22. 6 de janeiro 13:01:27 TECMINT SSHD [1269]: recebido suspiro; reiniciando. 6 de janeiro 13:01:27 Tecmint SSHD [1269]: Servidor ouvindo em 0.0.0.0 porta 22. 6 de janeiro 13:01:27 Tecmint SSHD [1269]: Servidor ouvindo :: Porta 22. 

Leia o cauda Página do homem para uma lista completa de opções e instruções de uso:

$ Man Tail 

6. classificar comando

organizar é usado para classificar linhas de um arquivo de texto ou de entrada padrão.

Abaixo está o conteúdo de um arquivo nomeado domínios.lista:

[Email protegido] ~ $ domínios de gatos.lista Tecmint.com Tecmint.com notícias.Tecmint.com notícias.Tecmint.com Linuxsay.com Linuxsay.com WindowsMint.com WindowsMint.com 

Você pode executar um comando de classificação simples para classificar o conteúdo do arquivo como assim:

[Email protegido] ~ $ classificar domínios.lista LinuxSay.com Linuxsay.com notícias.Tecmint.com notícias.Tecmint.com Tecmint.com Tecmint.com WindowsMint.com WindowsMint.com 

Você pode usar organizar Comando de várias maneiras, analise alguns dos artigos úteis com o comando de classificação da seguinte forma:

  1. 14 Exemplos úteis do comando linux 'Sort' - Parte 1
  2. 7 Exemplos de comando interessantes do Linux 'Sort' - Parte 2
  3. Como encontrar e classificar arquivos com base na data e hora da modificação
  4. Como classificar a saída do comando 'LS' até a última data e hora modificadas

7. comando uniq

Uniq O comando é usado para relatar ou omitir linhas repetidas, ele filtra as linhas da entrada padrão e grava o resultado para a saída padrão.

Depois de correr organizar Em um fluxo de entrada, você pode remover linhas repetidas com Uniq Como no exemplo abaixo.

Para indicar o número de ocorrências de uma linha, use o -c opção e ignore as diferenças no caso de comparar, incluindo o -eu opção:

[Email protegido] ~ $ domínios de gatos.lista Tecmint.com Tecmint.com notícias.Tecmint.com notícias.Tecmint.com Linuxsay.com Linuxsay.com WindowsMint.com [Email protegido] ~ $ classificar domínios.Lista | Uniq -c 2 Linuxsay.com 2 notícias.Tecmint.com 2 Tecmint.com 1 Windowsmint.com 

Leia o Uniq Página do homem para obter informações e sinalizadores de uso adicional:

$ MAN UNIQ 

8. comando fmt

fmt Formatório de texto ideal simples, ele reformata os parágrafos em arquivos especificados e imprime resultados para a saída padrão.

A seguir, o conteúdo é extraído do arquivo Lista de domínio.TXT:

1.Tecmint.com 2.notícias.Tecmint.com 3.LinuxSay.com 4.WindowsMint.com 

Para reformar o conteúdo acima para uma lista padrão, execute o seguinte comando com -c Switch é usado para definir a largura máxima da linha:

[Email protegido] ~ $ Lista de domínio CAT.TXT 1.Tecmint.com 2.notícias.Tecmint.com 3.LinuxSay.com 4.WindowsMint.com [Email protegido] ~ $ FMT -W 1 -Lista de domínio.TXT 1.Tecmint.com 2.notícias.Tecmint.com 3.LinuxSay.com 4.WindowsMint.com 

9. comando de relações públicas

pr O comando converte arquivos de texto ou entrada padrão para impressão. Por exemplo Debian Sistemas, você pode listar todos os pacotes instalados da seguinte forma:

$ dpkg -l 

Para organizar a lista em páginas e colunas prontas para impressão, emita o seguinte comando.

[Email protegido] ~ $ dpkg -l | PR - -colunas 3 -l 20 2017-01-06 13:19 Página 1 desejado = desconhecido/install II Adduser II apg | Status = não/inst/conf- ii adwaita-icon-theme ii app-install-data?= (nenhum)/ reinst-r ii adwaita-icon-theme- ii aparmor ||/ nome ii alsa-bashe ii apt +++-===================== II ALSA-UTILS II APT-CLONE II SERVIÇO II ANACRON II APT-TRANSPORT-HTTPS II ACL II APACHE2 II APT-UTILS II ACPI-APORT II APACHE2-BIN II APT-XAPIAN-INDEX II ACPID II APACHE2-DATA II APTDAMOMON II II Adicionar -Apt-key II Apache2-Utils II Aptdaemon-Data 2017-01-06 13:19 Página 2 II Aptidão II Avahi-Daemon II Bind9-Host II Aptidão-Common II Avahi-Utils II Binfmt-Suporte II Apturl II AVIEW II BINUTILS II APTURL-COMMON II BANSHEE II BISON II ARQUETECT-DEB II BAOBAB II BLT II ASPELL II Filos de base II Blueberry II ASPELL-EN II Base-Passwd II Bluetooth II AT Spi2-Core II Bluez II Bluez II ATT II BASH COMPLATO BASH COMPLARAÇÃO II II Bluez-Cups II Avahi-Autoipd II BC II Bluez-Obexd… 

As bandeiras usadas aqui são:

  1. --coluna define o número de colunas criadas na saída.
  2. -eu Especifica o comprimento da página (o padrão é de 66 linhas).

10. comando tr

Esta ferramenta traduz ou exclui caracteres da entrada padrão e grava resultados para a saída padrão.

A sintaxe para usar tr é o seguinte:

$ tractions set1 set2 

Dê uma olhada nos exemplos abaixo, no primeiro comando, set1 ([: superior:]) representa o caso de caracteres de entrada (todos os maiúsculos).

Então set2 ([: inferior:]) representa o caso em que os caracteres resultantes serão. É a mesma coisa no segundo exemplo e a sequência de fuga \ n significa saída de impressão em uma nova linha:

[Email protegido] ~ $ eco "www.Tecmint.Com "| tr [: superior:] [: inferior:] www.Tecmint.com [Email protegido] ~ $ eco "Notícias.Tecmint.com "| tr [: inferior:] [: superior:] NOTÍCIAS.Tecmint.Com 

11. mais comando

mais O comando é um filtro de leitura de arquivo útil criado basicamente para visualização de certificado. Ele mostra o conteúdo do arquivo em uma página como o formato, onde os usuários podem pressionar [Digitar] Para ver mais informações.

Você pode usá -lo para visualizar arquivos grandes como assim:

[Email protegido] ~ $ dmesg | mais [0.000000] Inicializando o CGROUP SUBSYS CPUSET [0.000000] Inicializando o CGROUP SUBSYS CPU [0.000000] Inicializando o CGROUP SUBSYS CPUACCT [0.000000] Linux versão 4.4.0-21-genérico ([Email Protected]) (GCC versão 5.3.1 20160413 (Ubuntu 5.3.1-14UBUNTU2)) #37-UBUNTU SMP MON 18 de abril 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-genérico 4.4.6) [0.000000] Linha de comando: boot_image =/boot/vmlluz-4.4.0-21 raiz genérica = uuid = bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro silencioso splash vt vt.transferência = 7 [0.000000] CPUs apoiadas pelo kernel: [0.000000] Intel genuineIntel [0.000000] AMD Authenticamd [0.000000] Centaur Centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, xstate_sizes [2]: 256 [0.000000] X86/FPU: Suporte ao recurso xSave 0x01: 'x87 Registros de ponto flutuante' [0.000000] X86/FPU: Suporte ao recurso xSave 0x02: 'SSE Registros' [0.000000] X86/FPU: Suporte ao recurso xSave 0x04: 'AVX Registros' [0.000000] X86/FPU: Recursos XSTATE ativados 0x7, o tamanho do contexto é 832 bytes, usando o formato 'padrão'. [0.000000] X86/FPU: Usando interruptores de contexto 'ansiosos' da FPU. [0.000000] E820: mapa físico fornecido por BIOS: [0.000000] BIOS-E820: [MEM 0x0000000000000000-0X000000000009D3FF] Usável [0.000000] BIOS-E820: [MEM 0x000000000009D400-0X000000000009FFFF] Reservado [0.000000] BIOS-E820: [MEM 0x00000000000E0000-0X00000000000FFFFF] Reservado [0.000000] BIOS-E820: [MEM 0x0000000000100000-0X000000A56AFFFF] utilizável [0.000000] BIOS-E820: [MEM 0X00000000A56B0000-0X00000000A5EFFFF] Reservado [0.000000] BIOS-E820: [MEM 0x00000000A5EB0000-0X000000AAABEFFF] UNICÁVEL --Mais-- 

12. Menos comando

menos é o oposto de mais Comando acima, mas oferece recursos extras e é um pouco mais rápido com arquivos grandes.

Use -o da mesma maneira que mais:

[Email protegido] ~ $ dmesg | menos [0.000000] Inicializando o CGROUP SUBSYS CPUSET [0.000000] Inicializando o CGROUP SUBSYS CPU [0.000000] Inicializando o CGROUP SUBSYS CPUACCT [0.000000] Linux versão 4.4.0-21-genérico ([Email Protected]) (GCC versão 5.3.1 20160413 (Ubuntu 5.3.1-14UBUNTU2)) #37-UBUNTU SMP MON 18 de abril 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-genérico 4.4.6) [0.000000] Linha de comando: boot_image =/boot/vmlluz-4.4.0-21 raiz genérica = uuid = bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro silencioso splash vt vt.transferência = 7 [0.000000] CPUs apoiadas pelo kernel: [0.000000] Intel genuineIntel [0.000000] AMD Authenticamd [0.000000] Centaur Centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, xstate_sizes [2]: 256 [0.000000] X86/FPU: Suporte ao recurso xSave 0x01: 'x87 Registros de ponto flutuante' [0.000000] X86/FPU: Suporte ao recurso xSave 0x02: 'SSE Registros' [0.000000] X86/FPU: Suporte ao recurso xSave 0x04: 'AVX Registros' [0.000000] X86/FPU: Recursos XSTATE ativados 0x7, o tamanho do contexto é 832 bytes, usando o formato 'padrão'. [0.000000] X86/FPU: Usando interruptores de contexto 'ansiosos' da FPU. [0.000000] E820: mapa físico fornecido por BIOS: [0.000000] BIOS-E820: [MEM 0x0000000000000000-0X000000000009D3FF] Usável [0.000000] BIOS-E820: [MEM 0x000000000009D400-0X000000000009FFFF] Reservado [0.000000] BIOS-E820: [MEM 0x00000000000E0000-0X00000000000FFFFF] Reservado [0.000000] BIOS-E820: [MEM 0x0000000000100000-0X000000A56AFFFF] utilizável [0.000000] BIOS-E820: [MEM 0X00000000A56B0000-0X00000000A5EFFFF] Reservado [0.000000] BIOS-E820: [MEM 0x00000000A5EB0000-0X00000000AAABEFFF] utilizável: 

Saiba por que 'menos' é mais rápido que o comando 'mais' para a navegação de arquivos eficaz no Linux.

Isso é tudo por enquanto, informe -nos de quaisquer ferramentas úteis da linha de comando não mencionadas aqui, que atuam como um texto de texto em Linux através da seção de comentários abaixo.