Búsqueda de sitios web

Cómo usar los comandos de cabeza y cola para el procesamiento de texto en Linux


head and tail son dos de los comandos más utilizados para la manipulación de texto en Linux. Así es como puede usarlos a su favor.

Hay muchos comandos y herramientas de Linux que se utilizan para procesar archivos de texto. Pero hay ocasiones en las que no desea leer todo el contenido de un archivo, sino una parte específica del mismo. ¿Sabe que puede usar los comandos head y tail en Linux para generar el comienzo y el final de un archivo respectivamente?

Siga leyendo para descubrir cómo puede usar estos dos comandos para procesar y manipular texto de manera efectiva en Linux.

¿Qué es el Comando principal?

El comando head se utiliza para imprimir las partes iniciales de un archivo. Lee los archivos desde el principio. Si tiene un archivo que tiene más de mil líneas, sería muy engorroso abrirlo y leerlo. Puede imprimir fácilmente algunas líneas desde la parte superior con el comando de cabeza.

La sintaxis del comando head

La sintaxis básica del comando head es:

head [option] [file]

Hay muchas opciones disponibles para usar junto con el comando principal, algunas de las cuales se discutirán más adelante. Para obtener ayuda de la línea de comandos con respecto al comando principal, consulte su página de manual ejecutando:

man head

Cómo usar el comando de la cabeza

Para este ejemplo, cree un archivo: numbers.txt. En el archivo, enumere los números del uno al 20 en palabras. Puede optar por utilizar cualquier archivo de su elección, pero asegúrese de que tenga al menos 11 líneas.

Uso del comando de cabeza predeterminado

De forma predeterminada, el comando head imprime las primeras 10 líneas de texto de un archivo. Pruébelo con el archivo numbers.txt ejecutando este comando en su terminal:

head numbers.txt

Imprimirá las primeras 10 líneas del archivo:

one
two
three
four
five
six
seven
eight
nine
ten

Si el archivo tiene menos de 10 líneas, el comando head imprimirá todas las líneas presentes.

Imprimir el primer número N de líneas

Puede usar el comando head para imprimir un número específico de líneas en lugar de las 10 predeterminadas. Para imprimir las tres primeras líneas del archivo number.txt, ejecute este comando:

head -n 3 numbers.txt

El resultado:

one
two
three

Excluir las últimas N líneas usando el comando head

Al igual que puede imprimir las primeras líneas de un texto, también puede decidir excluir las últimas N líneas al imprimir. Puede hacer esto usando un número negativo para el parámetro N.

Para excluir las últimas 15 líneas del archivo numbers.txt, ejecute:

head -n -15 numbers.txt

El resultado:

one
two
three
four
five

Imprimir los primeros N caracteres de un archivo

El comando head también tiene la opción de imprimir el primer número de caracteres o bytes en un archivo. Puedes hacerlo usando la opción -c. Para imprimir los primeros 10 caracteres, utilice:

head -c 10 numbers.txt

Producción :

one
two
th

¿Qué es el comando de cola?

Como su nombre lo indica, el comando tail imprime las últimas líneas de un archivo. Lee los archivos desde el final y genera las líneas finales.

La sintaxis del comando tail

La sintaxis básica del comando tail es:

tail [option] [file]

Para obtener más información sobre el comando tail, consulte su página de manual emitiendo:

 man tail

Cómo usar el comando de cola

Usaremos el archivo number.txt ya creado para los siguientes ejemplos.

Uso del comando de cola predeterminado

El comando tail genera las últimas 10 líneas de un archivo cuando se usa sin ninguna opción especial. Por ejemplo:

tail numbers.txt

La salida mostrará las últimas 10 líneas como se menciona:

eleven
twelve
thirteen
fourteen
fifteen
sixteen
seventeen
eighteen
nineteen
twenty

Imprimir el último número N de líneas

En una situación en la que no desea imprimir las últimas 10 líneas, sino un número específico, puede usar la opción -n para lograrlo. Para imprimir las últimas cuatro líneas del archivo de números.txt, ejecute este comando:

tail -n 4 numbers.txt

El resultado:

seventeen
eighteen
nineteen
twenty

Imprimir líneas después de una línea específica

Si desea comenzar desde una línea N en particular, puede usar la opción -n junto con un número positivo para lograrlo. Para imprimir la salida del archivo number.txt desde la línea 17, ejecute este comando:

tail -n +17 numbers.txt

El resultado:

seventeen
eighteen
nineteen
twenty

Imprimir los últimos N caracteres de un archivo

Al igual que el comando head, puede imprimir los últimos caracteres del archivo usando la opción -c. Para imprimir los últimos 10 caracteres del archivo number.txt, ejecute este comando:

tail -c 10 numbers.txt

El resultado:

en
twenty

Uso de los comandos de cabeza y cola con varios archivos

También puede usar cabeza y cola para imprimir más de un archivo a la vez. Esta es la sintaxis para usar los comandos con múltiples entradas de archivos:

head [option] [file1] [file2]
tail [option] [file1] [file2]

Usando los comandos de cabeza y cola juntos

Incluso puede usar la cabeza y la cola en el mismo comando usando el símbolo de tubería. El símbolo de tubería redirige la salida de un comando como entrada a otro.

Por ejemplo, para obtener las líneas sexta, séptima y octava, puede ejecutar este comando:

head -n 8 numbers.txt | tail -n 3

El resultado:

six
seven
eight

En el one-liner antes mencionado, el comando head mostraba las primeras ocho líneas del archivo, luego la salida se pasaba al comando tail, que imprimía las últimas tres líneas de la salida redirigida.

head and tail: útiles comandos de manipulación de texto

Linux ofrece muchos comandos para ayudarlo a manipular y procesar archivos de texto de manera efectiva, y los comandos de cabeza y cola son solo dos de muchos. Los comandos de manipulación de texto más comunes incluyen grep, uniq, sort, sed, awk, etc. Cada uno de ellos cumple un propósito diferente con su conjunto de características único.

Además de la cabeza y la cola, hay toneladas de otros comandos de manipulación de texto y archivos disponibles para los usuarios de Linux.

Artículos relacionados: