12 comandos úteis para filtrar o texto para operações de arquivo eficazes no Linux
- 3964
- 230
- Enrique Crist
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:
- Como usar o comando GNU 'sed' para criar, editar e manipular arquivos no Linux
- 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:
- 14 Exemplos úteis do comando linux 'Sort' - Parte 1
- 7 Exemplos de comando interessantes do Linux 'Sort' - Parte 2
- Como encontrar e classificar arquivos com base na data e hora da modificação
- 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:
--coluna
define o número de colunas criadas na saída.-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.
- « Como renomear o arquivo enquanto baixava com WGET no Linux
- Instale o nginx com ngx_pagespeed (otimização de velocidade) no Debian e Ubuntu »