12 comandos útiles para filtrar texto para operaciones de archivo efectivas en Linux

12 comandos útiles para filtrar texto para operaciones de archivo efectivas en Linux

En este artículo, revisaremos una serie de herramientas de línea de comandos que actúan como filtros en Linux. A filtrar es un programa que lee la entrada estándar, realiza una operación sobre él y escribe los resultados en salida estándar.

Por esta razón, se puede utilizar para procesar información de maneras potentes, como la salida de reestructuración para generar informes útiles, modificar el texto en archivos y muchas otras tareas de administración del sistema.

Dicho esto, a continuación se encuentran algunos de los archivos útiles o filtros de texto en Linux.

1. Comando AWK

Asombrar es un notable lenguaje de escaneo y procesamiento de patrones, se puede usar para crear filtros útiles en Linux. Puede comenzar a usarlo leyendo a través de nuestra serie AWK Parte 1 a la Parte 13.

Además, también lea el asombrar página del hombre para más información y opciones de uso:

$ hombre awk 

2. Comando SED

sed es un poderoso editor de transmisión para filtrar y transformar texto. Ya hemos escrito dos artículos útiles sobre SED, que puedes revisarlo aquí:

  1. Cómo usar el comando GNU 'SED' para crear, editar y manipular archivos en Linux
  2. 15 consejos y trucos de comando 'sed' útiles para tareas diarias de administración del sistema Linux

La página del hombre SED ha agregado opciones de control e instrucciones:

$ hombre sed 

3. GreP, Egrep, FGREP, RGREP Comandos

Estas líneas de salida de filtros que coinciden con un patrón dado. Leen líneas de un archivo o entrada estándar, e imprimen todas las líneas de coincidencia de forma predeterminada en la salida estándar.

Nota: El programa principal es GREP, las variaciones son simplemente las mismas que el uso de opciones de GREP específicas que a continuación (y todavía se están utilizando para la compatibilidad hacia atrás):

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

A continuación se presentan algunos comandos básicos de GREP:

[correo electrónico protegido] ~ $ Grep "Aaronkilik" /etc /passwd Aaronkilik: X: 1001: 1001 ::/Home/Aaronkilik: [correo electrónico protegido] ~ $ CAT /ETC /PASSWD | Grep "Aronkilik" Aaronkilik: X: 1001: 1001 ::/Home/Aaronkilik: 

Puede leer más sobre cuál es la diferencia entre Grep, Egrep y FGrep en Linux?.

4. comando de cabeza

cabeza se usa para mostrar las primeras partes de un archivo, genera el primero 10 líneas por defecto. Puedes usar el -norte NUM BAINK para especificar el número de líneas que se mostrarán:

[correo electrónico protegido] ~ $ cabeza/var/log/auth.registro 2 de enero 10:45:01 Tecmint Cron [3383]: Pam_unix (Cron: Sesión): Sesión abierta para Root de usuario por (uid = 0) 2 de enero 10:45:01 Tecmint Cron [3383]: Pam_unix (Cron: Sesión) : Sesión cerrada para el usuario Root 2 de enero 10:51:34 TecMint sudo: TecMint: TTY = Desconocido; Pwd =/home/tecMint; Usuario = root; Comando =/usr/lib/linuxMint/mintupdate/checkapt.Py 2 de enero 10:51:34 Tecmint sudo: Pam_unix (sudo: sesión): Sesión abierta para el usuario root por (uid = 0) 2 de enero 10:51:39 Tecmint Sudo: Pam_unix (sudo: sesión): Sesión cerrada para el usuario Root 2 de enero 10:55:01 Tecmint Cron [4099]: Pam_unix (Cron: Sesión): Sesión abierta para el usuario Root por (uid = 0) 2 de enero 10:55:01 Tecmint Cron [4099]: Pam_unix (Cron: Sesión: Sesión ): Sesión cerrada para la raíz del usuario 2 de enero 11:05:01 Tecmint Cron [4138]: Pam_unix (Cron: Sesión): Sesión abierta para Root de usuario por (UID = 0) 2 de enero 11:05:01 Tecmint Cron [4138] : pam_unix (cron: session): sesión cerrada para la raíz del usuario 2 de enero 11:09:01 TecMint Cron [4146]: Pam_Unix (Cron: Sesión): Sesión abierta para la raíz del usuario por (UID = 0) [correo electrónico protegido] ~ $ cabeza -n 5/var/log/auth.registro 2 de enero 10:45:01 Tecmint Cron [3383]: Pam_unix (Cron: Sesión): Sesión abierta para Root de usuario por (uid = 0) 2 de enero 10:45:01 Tecmint Cron [3383]: Pam_unix (Cron: Sesión) : Sesión cerrada para el usuario Root 2 de enero 10:51:34 TecMint sudo: TecMint: TTY = Desconocido; Pwd =/home/tecMint; Usuario = root; Comando =/usr/lib/linuxMint/mintupdate/checkapt.Py 2 de enero 10:51:34 Tecmint sudo: Pam_unix (sudo: sesión): Sesión abierta para el usuario root por (uid = 0) 2 de enero 10:51:39 Tecmint Sudo: Pam_unix (sudo: sesión): Sesión cerrada para el usuario raíz 

Aprenda a usar el comando Head con comandos de cola y gato para un uso efectivo en Linux.

5. comando de cola

cola emite las últimas partes (10 líneas por defecto) de un archivo. Utilizar el -norte Num Switch Para especificar el número de líneas que se mostrarán.

El siguiente comando emitirá el último 5 líneas del archivo especificado:

[correo electrónico protegido] ~ $ Tail -n 5/var/log/auth.registro 6 de enero 13:01:27 TECMINT SSHD [1269]: Servidor escucha en 0.0.0.0 Puerto 22. 6 de enero 13:01:27 TecMint SSHD [1269]: Servidor Escuchar en :: Puerto 22. 6 de enero 13:01:27 TECMINT SSHD [1269]: Recibido SighUp; reinicio. 6 de enero 13:01:27 TECMINT SSHD [1269]: Servidor escucha en 0.0.0.0 Puerto 22. 6 de enero 13:01:27 TecMint SSHD [1269]: Servidor Escuchar en :: Puerto 22. 

Además, cola tiene una opción especial -F Para ver los cambios en un archivo en tiempo real (especialmente los archivos de registro).

El siguiente comando le habilitará su monitorear los cambios en el archivo especificado:

[correo electrónico protegido] ~ $ cola -f/var/log/auth.registro 6 de enero 12:58:01 Tecmint SSHD [1269]: Servidor Escuchar en :: Puerto 22. 6 de enero 12:58:11 TecMint SSHD [1269]: Recibido SighUp; reinicio. 6 de enero 12:58:12 TECMINT SSHD [1269]: Servidor Escuchar en 0.0.0.0 Puerto 22. 6 de enero 12:58:12 TECMINT SSHD [1269]: Servidor Escuchar en :: Puerto 22. 6 de enero 13:01:27 TECMINT SSHD [1269]: Recibido SighUp; reinicio. 6 de enero 13:01:27 TECMINT SSHD [1269]: Servidor escucha en 0.0.0.0 Puerto 22. 6 de enero 13:01:27 TecMint SSHD [1269]: Servidor Escuchar en :: Puerto 22. 6 de enero 13:01:27 TECMINT SSHD [1269]: Recibido SighUp; reinicio. 6 de enero 13:01:27 TECMINT SSHD [1269]: Servidor escucha en 0.0.0.0 Puerto 22. 6 de enero 13:01:27 TecMint SSHD [1269]: Servidor Escuchar en :: Puerto 22. 

Leer el cola página del hombre para una lista completa de opciones e instrucciones de uso:

$ hombre cola 

6. ordenar comando

clasificar se usa para ordenar las líneas de un archivo de texto o desde la entrada estándar.

A continuación se muestra el contenido de un archivo llamado dominio.lista:

[correo electrónico protegido] ~ $ dominios de gato.lista tecmenta.com tecmint.comotrices.tecmenta.comotrices.tecmenta.com linuxsay.com linuxsay.com windowsmint.com windowsmint.comunicarse 

Puede ejecutar un comando de clasificación simple para clasificar el contenido del archivo así:

[correo electrónico protegido] ~ $ ordenar dominios.lista Linuxsay.com linuxsay.comotrices.tecmenta.comotrices.tecmenta.com tecmint.com tecmint.com windowsmint.com windowsmint.comunicarse 

Puedes usar clasificar Comando en muchos sentidos, revise algunos de los artículos útiles sobre el comando de clasificación de la siguiente manera:

  1. 14 Ejemplos útiles del comando de Linux 'Sort' - Parte 1
  2. 7 Ejemplos de comando interesantes de Linux 'Sort' - Parte 2
  3. Cómo encontrar y ordenar archivos basados ​​en la fecha y hora de modificación
  4. Cómo ordenar la salida del comando 'LS' por última fecha y hora modificadas

7. comando uniq

uniq El comando se usa para informar u omitir líneas repetidas, filtra líneas desde la entrada estándar y escribe el resultado en salida estándar.

despues de correr clasificar En una secuencia de entrada, puede eliminar las líneas repetidas con uniq Como en el ejemplo a continuación.

Para indicar el número de ocurrencias de una línea, use el -C opción e ignorar las diferencias en caso de que se compare al incluir el -i opción:

[correo electrónico protegido] ~ $ dominios de gato.lista tecmenta.com tecmint.comotrices.tecmenta.comotrices.tecmenta.com linuxsay.com linuxsay.com windowsmint.comunicarse [correo electrónico protegido] ~ $ ordenar dominios.Lista | uniq -c 2 Linuxsay.com 2 noticias.tecmenta.com 2 Tecmint.com 1 WindowsMint.comunicarse 

Leer el uniq página del hombre para obtener más información y banderas de uso:

$ hombre uniq 

8. comando fmt

fmt Forma de texto óptimo simple, reformatea los párrafos en el archivo especificado e imprime resultados en la salida estándar.

El siguiente es el contenido extraído del archivo lista de dominio.TXT:

1.tecmenta.com 2.noticias.tecmenta.com 3.Linuxsay.com 4.WindowsMint.comunicarse 

Para reformatear el contenido anterior en una lista estándar, ejecute el siguiente comando con -w El interruptor se usa para definir el ancho de línea máximo:

[correo electrónico protegido] ~ $ Lista de dominio de gato.TXT 1.tecmenta.com 2.noticias.tecmenta.com 3.Linuxsay.com 4.WindowsMint.comunicarse [correo electrónico protegido] ~ $ FMT -W 1 Lista de dominio.TXT 1.tecmenta.com 2.noticias.tecmenta.com 3.Linuxsay.com 4.WindowsMint.comunicarse 

9. comando PR

PRS El comando convierte archivos de texto o entrada estándar para imprimir. Por ejemplo en Debian sistemas, puede enumerar todos los paquetes instalados de la siguiente manera:

$ dpkg -l 

Para organizar la lista en páginas y columnas listas para la impresión, emita el siguiente comando.

[correo electrónico protegido] ~ $ dpkg -l | PR -Columnas 3 -L 20 2017-01-06 13:19 Página 1 Deseued = Desconocido/Install II Adduser II APG | Status = no/inst/conf- II adwaita-icon-theme II aplicar-instalar data |/errar?= (Ninguno)/ Reinst-R II AdWaita-Icon-Theme- II Apparmor ||/ Nombre II ALSA-BASE II APT +++-==================== II ALSA-UTILS II APT-CLONE II Servicio de cuentas II anacron II apt-transport-https II ACL II apache2 II apt-utils II ACPI-SUPPORT II APACHE2-BIN II apt-xapian-indexi II acpid ii apache2-data ii aptdaemon ADT -Apt-Key II Apache2-Utils II Aptdaemon-Data 2017-01-06 13:19 Página 2 II APTITION II AVAHI-DAEMON II BIND9-HOST II APTITION-COMMON II AVAHI-UTILS II BINFMT-SPPORT II APTURL II AVIEW II Binutils II Apturl-Common II Banshee II Bison II Archdetect-deb II Baobab II BLT II ASPELL II FILES BASE II ARBROLLE II ASPELL-EN II BASE-PASSWD II BLUETOOTH II AT-SPI2-CORE II BASH II ALTRIZ II ATTR II COMPLETIVE DE BASH-COMPLETIVE II Bluez-Cups II Avahi-Autoipd II BC II Bluez-Obexd .. 

Las banderas utilizadas aquí son:

  1. --columna Define el número de columnas creadas en la salida.
  2. -l Especifica la longitud de la página (el valor predeterminado es 66 líneas).

10. Comando TR

Esta herramienta traduce o elimina los caracteres de la entrada estándar y escribe resultados en salida estándar.

La sintaxis para usar TR es como sigue:

$ TR Opciones set1 set2 

Eche un vistazo a los ejemplos a continuación, en el primer comando, set1 ([: superior:]) Representa el caso de los caracteres de entrada (todos los mayúsculas).

Entonces set2 ([: inferior:]) representa el caso en el que los caracteres resultantes serán. Es lo mismo en el segundo ejemplo y la secuencia de escape \norte significa la salida de impresión en una nueva línea:

[correo electrónico protegido] ~ $ echo "www.Tecmenta.Com "| tr [: superior:] [: inferior:] www.tecmenta.comunicarse [correo electrónico protegido] ~ $ Echo "Noticias.tecmenta.com "| tr [: inferior:] [: superior:] NOTICIAS.Tecmenta.Comunicarse 

11. más comando

más El comando es un filtro de lectura de archivo útil creado básicamente para la visualización de certificados. Muestra contenido del archivo en un formato similar a la página, donde los usuarios pueden presionar [Ingresar] Para ver más información.

Puede usarlo para ver archivos grandes como así:

[correo electrónico protegido] ~ $ dmesg | más [0.000000] Inicialización de cgroup subsys cpuset [0.000000] Inicialización de la CPU de cgroup subsys [0.000000] Inicialización de CGROUP Subsys CPUACCT [0.000000] Linux versión 4.4.0-21-Generic ([correo electrónico protegido]) (GCC versión 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] Línea de comando: boot_image =/boot/vmlinuz-4.4.0-21 Generic Root = UUID = BB29DDA3-BDAA-4B39-86CF-4A6DC9634A1B RO Splash Splash Splash.traspaso = 7 [0.000000] CPU Kernel compatible con el núcleo: [0.000000] Intel GenuineIntel [0.000000] AMD Authenticamd [0.000000] Centauro Centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, xstate_sizes [2]: 256 [0.000000] x86/fpu: característica XSave de soporte 0x01: 'X87 Registros de puntos flotantes' [0.000000] x86/fpu: característica XSave de soporte 0x02: 'Registros de SSE' [0.000000] x86/fpu: característica XSave de soporte 0x04: 'Registros AVX' [0.000000] x86/fpu: características de Xstate habilitadas 0x7, el tamaño de contexto es 832 bytes, utilizando formato 'estándar'. [0.000000] x86/fpu: Uso de interruptores de contexto de FPU 'ansiosos'. [0.000000] E820: Mapa de RAM físico proporcionado por el BIOS: [0.000000] BIOS-E820: [MEM 0x0000000000000000-0X000000000009D3FF] USABLE [0.000000] BIOS-E820: [MEM 0x000000000009D400-0X000000000009FFFF] Reservado [0.000000] BIOS-E820: [MEM 0x00000000000E0000-0X00000000000FFFFF] Reservado [0.000000] BIOS-E820: [MEM 0x0000000000100000-0X0000000000A56AFFFF] USABLE [0.000000] BIOS-E820: [MEM 0x00000000A56B0000-0X00000000A5EAFFFF] Reservado [0.000000] BIOS-E820: [MEM 0x00000000A5EB0000-0X0000000000AAABEFFF] Usable --Más-- 

12. Menos comando

menos es lo opuesto a más Comando anterior, pero ofrece funciones adicionales y es un poco más rápido con archivos grandes.

Úselo de la misma manera que más:

[correo electrónico protegido] ~ $ dmesg | menos [0.000000] Inicialización de cgroup subsys cpuset [0.000000] Inicialización de la CPU de cgroup subsys [0.000000] Inicialización de CGROUP Subsys CPUACCT [0.000000] Linux versión 4.4.0-21-Generic ([correo electrónico protegido]) (GCC versión 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] Línea de comando: boot_image =/boot/vmlinuz-4.4.0-21 Generic Root = UUID = BB29DDA3-BDAA-4B39-86CF-4A6DC9634A1B RO Splash Splash Splash.traspaso = 7 [0.000000] CPU Kernel compatible con el núcleo: [0.000000] Intel GenuineIntel [0.000000] AMD Authenticamd [0.000000] Centauro Centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, xstate_sizes [2]: 256 [0.000000] x86/fpu: característica XSave de soporte 0x01: 'X87 Registros de puntos flotantes' [0.000000] x86/fpu: característica XSave de soporte 0x02: 'Registros de SSE' [0.000000] x86/fpu: característica XSave de soporte 0x04: 'Registros AVX' [0.000000] x86/fpu: características de Xstate habilitadas 0x7, el tamaño de contexto es 832 bytes, utilizando formato 'estándar'. [0.000000] x86/fpu: Uso de interruptores de contexto de FPU 'ansiosos'. [0.000000] E820: Mapa de RAM físico proporcionado por el BIOS: [0.000000] BIOS-E820: [MEM 0x0000000000000000-0X000000000009D3FF] USABLE [0.000000] BIOS-E820: [MEM 0x000000000009D400-0X000000000009FFFF] Reservado [0.000000] BIOS-E820: [MEM 0x00000000000E0000-0X00000000000FFFFF] Reservado [0.000000] BIOS-E820: [MEM 0x0000000000100000-0X0000000000A56AFFFF] USABLE [0.000000] BIOS-E820: [MEM 0x00000000A56B0000-0X00000000A5EAFFFF] Reservado [0.000000] Bios-E820: [MEM 0x00000000A5EB0000-0X0000000000AAABEFFF] Usable: 

Aprenda por qué 'menos' es un comando más rápido que 'más' para una navegación efectiva de archivos en Linux.

Eso es todo por ahora, háganos saber de cualquier herramienta útil de línea de comandos que no se mencione aquí, que actúen como un texto filtros en Linux a través de la sección de comentarios a continuación.