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. Un filtro. es un programa que lee la entrada estándar, realiza una operación sobre ella y escribe los resultados en la salida estándar.

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

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

1. Awk Command

Awk. es un lenguaje de procesamiento y escaneo de patrones notable, se puede usar para construir filtros útiles en Linux. Puede comenzar a usarlo leyendo nuestra serie Awk desde la parte 1 hasta la parte 13.

Además, lea también la página de manual de awk. para obtener más información y opciones de uso:

$ man awk

2. Sed Command

freestar.config.enabled_slots.push

sed. es un potente editor de flujo para filtrar y transformar texto . Ya hemos escrito dos artículos útiles sobre sed, que puede leer aquí:

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

La página de manual de sed ha agregado opciones de control e instrucciones:

$ man sed

3. Comandos Grep, Egrep, Fgrep, Rgrep

Estos filtros generan líneas que coinciden con un patrón determinado. Leen líneas de un archivo o entrada estándar e imprimen todas las líneas coincidentes de forma predeterminada en la salida estándar.

Nota. El programa principal es grep, las variaciones son simplemente las mismas que usar opciones grep específicas como se muestra a continuación (y todavía se están usando para compatibilidad con versiones anteriores):

$ egrep = grep-E $ fgrep = grep-F $ rgrep = grep-r

A continuación se muestran algunos comandos grep básicos:

[email protected] ~ $. grep “aaronkilik”/etc/passwd aaronkilik: x: 1001: 1001 ::/home/aaronkilik:. [email protected] ~ $. 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. El comando head

head. se usa para mostrar las primeras partes de un archivo, genera las primeras 10. líneas por defecto. Puede usar el indicador-n num para especificar el número de líneas que se mostrarán:

[email protected] ~ $. head/var/log/auth.log. 2 de enero 10:45:01 TecMint CRON [3383]: pam_unix (cron: sesión): sesión abierta para el usuario root 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; COMMAND =/usr/lib/linuxmint/mintUpdate/checkAPT.py 2 de enero 10:51:34 TecMint sudo: pam_unix (sudo: session): 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 usuario root 2 de enero 10:55:01 TecMint CRON [4099]: pam_unix (cron: sesión): sesión abierta para usuario root por (uid = 0) 2 de enero 10:55 : 01 TecMint CRON [4099]: pam_unix (cron: sesión): sesión cerrada para el usuario root 2 de enero 11:05:01 TecMint CRON [4138]: pam_unix (cron: sesión): sesión abierta para el usuario root por (uid = 0 ) 2 de enero 11:05:01 TecMint CRON [4138]: pam_unix (cron: sesión): sesión cerrada para el usuario root 2 de enero 11:09:01 TecMint CRON [4146]: pam_unix (cron: sesión): sesión abierta para el usuario root por (uid = 0) [email protected] ~ $. head-n 5/var/log/auth.log. 2 de enero de 10 : 45: 01 TecMint CRON [3383]: pam_unix (cron: sesión): sesión abierta para el usuario root por (uid = 0) 2 de enero 10:45:01 TecMint CRON [3383]: pam_unix (cron: sesión): cierre de sesión d para el usuario root 2 de enero 10:51:34 TecMint sudo: tecmint: TTY = desconocido; PWD =/home/tecmint; USUARIO = root; COMMAND =/usr/lib/linuxmint/mintUpdate/checkAPT.py 2 de enero 10:51:34 TecMint sudo: pam_unix (sudo: session): sesión abierta para el usuario root por (uid = 0) 2 de enero 10:51:39 TecMint sudo: pam_unix (sudo: session): sesión cerrada para el usuario root

Aprenda a usar el comando head con los comandos tail y cat para un uso efectivo en Linux.

5. tail Command

tail. genera las últimas partes ( 10. líneas por defecto) de un archivo. Utilice el conmutador-n num para especificar el número de líneas que se mostrarán.

El siguiente comando generará las últimas 5. líneas del archivo especificado:

[email protected] ~ $. tail-n 5/var/log/auth.log. 6 de enero 13:01: 27 TecMint sshd [1269]: Servidor escuchando en 0.0.0.0 puerto 22. 6 de enero 13:01:27 TecMint sshd [1269]: Servidor escuchando en :: puerto 22. 6 de enero 13:01:27 TecMint sshd [1269]: Recibido SIGHUP; reiniciando. 6 de enero 13:01:27 TecMint sshd [1269]: Servidor escuchando en 0.0.0.0 puerto 22. 6 de enero 13:01:27 TecMint sshd [1269]: Servidor escuchando en :: puerto 22.

Además, tail. 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 permitirá monitorear los cambios en el archivo especificado:

[email protected] ~ $. tail-f/var/log/auth.log. 6 de enero 12:58:01 TecMint sshd [1269]: Servidor escuchando en :: puerto 22. 6 de enero 12:58:11 TecMint sshd [1269]: Recibido SIGHUP; reiniciando. 6 de enero 12:58:12 TecMint sshd [1269]: Servidor escuchando en 0.0.0.0 puerto 22. 6 de enero 12:58:12 TecMint sshd [1269]: Servidor escuchando en :: puerto 22. 6 de enero 13:01:27 TecMint sshd [1269]: Recibido SIGHUP; reiniciando. 6 de enero 13:01:27 TecMint sshd [1269]: Servidor escuchando en 0.0.0.0 puerto 22. 6 de enero 13:01:27 TecMint sshd [1269]: Servidor escuchando en :: puerto 22. 6 de enero 13:01:27 TecMint sshd [1269]: Recibido SIGHUP; reiniciando. 6 de enero 13:01:27 TecMint sshd [1269]: Servidor escuchando en 0.0.0.0 puerto 22. 6 de enero 13:01:27 TecMint sshd [1269]: Servidor escuchando en :: puerto 22.

Lea el tail. página de manual para obtener una lista completa de opciones de uso e instrucciones:

$ man tail

6. Ordenar comando

ordenar. se utiliza para ordenar líneas de un archivo de texto o de una entrada estándar.

A continuación se muestra el contenido de un archivo llamado dominios .list.

[email protected] ~ $. cat domains.list. tecmint.com tecmint.com news .tecmint.com news.tecmint.com linuxsay.com linuxsay.com windowsmint.com windowsmint.com

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

[correo electrónico protegido] ~ $. sort domains.list. linuxsay.com linuxsay.com news.tecmint.com news.tecmint.com tecmint.com tecmint.com windowsmint.com windowsmint.com

Puede utilizar el comando sort. de muchas formas; consulte algunos de los artículos útiles sobre el comando sort de la siguiente manera:

  1. 14 ejemplos útiles de Linux Comando ‘sort’-Parte 1
  2. 7 Ejemplos interesantes del comando ‘sort’ de Linux-Parte 2
  3. Cómo buscar y ordenar archivos según Fecha y hora de modificación
  4. Cómo ordenar la salida del comando “ls” por fecha y hora de la última modificación

7. Comando uniq

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

Después de ejecutar ordenar. en un flujo de entrada, puede eliminar las líneas repetidas con uniq. como en el ejemplo siguiente.

Para indicar el número de apariciones de una línea, use la opción-c e ignore las diferencias entre mayúsculas y minúsculas al comparar incluyendo la opción-i:

[email protected] ~ $. cat dominios. list. tecmint.com tecmint.com news.tecmint.com news.tecmint.com linuxsay.com linuxsay.com windowsmint.com [email protected] ~ $. ordenar domains.list | uniq-c. 2 linuxsay.com 2 news.tecmint.com 2 tecmint.com 1 windowsmint.com

Lea la página de manual de uniq. para obtener más información de uso y banderas:

$ man uniq

8. Comando fmt

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

El siguiente es el contenido extraído el archivo domain-list.txt.

1.tecmint.com 2.news.tecmint.com 3.linuxsay.com 4.windowsmint.com

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

[email protected] ~ $. cat domain-list.txt. 1.tecmint.com 2.news.tecmint.com 3.linuxsay.com 4.windowsmint.com [email protected] ~ $. fmt-w 1 domain-list.txt. 1.tecmint.com 2.news.tecmint.com 3.linuxsay.com 4.windowsmint.com

9. Comando pr

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

$ dpkg-l

Para organizar la lista en páginas y columnas listas para imprimir, ejecute el siguiente comando.

[correo electrónico protegido] ~ $. dpkg-l | pr–columns 3-l 20. 2017-01-06 13:19 Página 1 Deseado = Desconocido/Instalar ii adduser ii apg | Estado = No/Inst/Conf-ii adwaita-icon-theme ii app-install-data |/Err? = (None)/Reinst-r ii adwaita-icon-theme-ii apparmor ||/Name 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-index ii acpid ii apache2-data ii aptdaemon ii add-apt-key ii apache2-utils ii aptdaemon-data 2017-01-06 13:19 Página 2 ii aptitude ii avahi-daemon ii bind9-host ii aptitude-common ii avahi-utils ii binfmt-support ii apturl ii aview ii binutils ii apturl-common ii banshee ii bison ii archdetect-deb ii baobab ii blt ii aspell ii base-files ii blueberry ii aspell-en ii base-passwd ii bluetooth ii at-spi2-core ii bash ii bluez ii attr ii bash-complete ii bluez-cups ii avahi-autoipd ii bc ii bluez-obexd …..

Los indicadores utilizados aquí son:

  1. –column 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. tr Command

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

La sintaxis para usar tr. es la siguiente:

$ tr options set1 set2

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

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

[email protected] ~ $. echo “WWW.TECMINT.COM” | tr [: superior:] [: inferior:]. www.tecmint.com [email protected] ~ $. echo “news.tecmint.com “| tr [: inferior:] [: superior:]. NEWS.TECMINT.COM

11. Comando more

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

Puede usarlo para ver archivos grandes como este:

[correo electrónico protegido] ~ $. dmesg | más. [0.000000] Inicializando cgroup subsys cpuset [0.000000] Inicializando cgroup subsys cpu [0.000000] Inicializando cgroup subsys cpuacct [0.000000] Linux versión 4.4.0-21-generic ([email protected]) (gcc versión 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2)) # 37-Ubuntu SMP Lunes 18 de abril 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic 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 quiet splash vt.handoff = 7 [0.000000] cpus compatible con 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: Compatible con la función XSAVE 0x01: ‘x87 floating point registers’ [0,000000] x86/fpu: Compatible con la función XSAVE 0x02 : ‘Registros SSE’ [0.000000] x86/fpu: Función XSAVE compatible 0x04: ‘Registros AVX’ [0.000000] x86/fpu: Habilitado xs tate presenta 0x7, el tamaño del contexto es de 832 bytes, usando el formato ‘estándar’. [0.000000] x86/fpu: uso de conmutadores de contexto FPU ‘ansiosos’. [0.000000] e820: mapa de RAM físico proporcionado por el BIOS: [0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] utilizable [0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reservado [0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reservado [0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] utilizable [0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reservado [0.000000] BIOS-e820: [mem 0x00000000be5eb0000-0x0000f-Más–

12. Less Command

less. es lo opuesto al comando more. 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] Inicializando cgroup subsys cpuset [0.000000] Inicializando cgroup subsys cpu [0.000000] Inicializando cgroup subsys cpuacct [0.000000] Linux versión 4.4.0-21-generic ([email protected]) (gcc versión 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2)) # 37-Ubuntu SMP Lunes 18 de abril 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic 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 quiet splash vt.handoff = 7 [0.000000] cpus compatible con 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: Compatible con la función XSAVE 0x01: ‘x87 floating point registers’ [0,000000] x86/fpu: Compatible con la función XSAVE 0x02 : ‘Registros SSE’ [0.000000] x86/fpu: Función XSAVE compatible 0x04: ‘Registros AVX’ [0.000000] x86/fpu: Habilitado xs tate presenta 0x7, el tamaño del contexto es de 832 bytes, usando el formato ‘estándar’. [0.000000] x86/fpu: uso de conmutadores de contexto FPU ‘ansiosos’. [0.000000] e820: mapa de RAM físico proporcionado por el BIOS: [0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] utilizable [0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reservado [0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reservado [0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] utilizable [0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reservado [0.000000] BIOS-e820: [mem 0x00000000be5eb0000-0x0000:

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

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