13.11. Comandos básicos adicionales para la lectura de archivos de texto

Ya conoce algunos comandos básicos del intérprete de comandos de la shell para la lectura de archivos por los editores de texto. Aquí tiene algunos más.

13.11.1. El comando head

Puede utilizar el comando head en caso de que desee ir al inicio de un archivo. El comando es:

head 
<filename>

head puede ser muy útil, pero como está limitado a las primeras líneas, no podrá ver el largo del archivo. Por defecto, sólo puede leer las primeras diez líneas de un archivo, aunque puede cambiar este número especificándolo, como en el comando a continuación:

head -20 
<filename>

13.11.2. El comando tail

El contrario de head es tail. Usando tail, puede volver a ver las diez últimas líneas de un archivo. Esto puede ser muy útil para ver las últimas líneas de un archivo de registro y así ver los mensajes importantes del sistema. También puede usar tail para vigilar cómo se actualizan los archivos de registro (log). Usando la opción -f, tail imprimirá automaticamente los nuevos mensajes desde un archivo abierto a la pantalla en tiempo real. Por ejemplo, para vigilar activamente /var/log/messages, escriba lo siguiente en el intérprete de comandos shell como usuario root:

tail -f /var/log/messages

13.11.3. El comando grep

El comando grep es útil para encontrar una cadena de caracteres específica en un archivo. Por ejemplo, si quiere encontrar cada referencia que se haya hecho a "coffee" en el archivo sneakers.txt, debería escribir:

grep coffee sneakers.txt

Verá cada una de las líneas donde aparece la palabra "coffee".

SugerenciaSugerencia
 

A menos que se especifique lo contrario, las búsquedas de grep son sensibles a mayúsculas y minúsculas. Lo cual significa que Coffee no es lo mismo que coffee. Entre las opciones de grep está -i, que le permite hacer una búsqueda insensible a mayúsculas y minúsculas a través de un archivo. Lea la página de manual grep más información sobre este comando.

13.11.4. Redireccionamiento de E/S y tuberías

Puede usar el redireccionamiento de la salida y tuberías cuando desee guardar y/o imprimir la información para leerla después.

Por ejemplo, puede usar grep para buscar contenidos específicos de un archivo y posteriormente guardar estos resultados como un archivo o imprimirlos.

Para imprimir la información sobre todas las referencias a "coffee" en sneakers.txt, escriba:

grep coffee sneakers.txt | lpr

13.11.5. Comodines y expresiones regulares

¿Qué sucede si olvida el nombre de un archivo que está buscando? Mediante el uso de caracteres de sustitución o expresiones regulares, puede ejecutar acciones en un archivo o archivos sin saber el nombre de archivo completo. Rellene lo que sabe y sustituya lo restante con un comodín. Los comodines son símbolos especiales que puede usar para sustituir letras, números y símbolos lo que permite encontrar directorios y archivos más fácil que leer listados largos para encontrar lo que está buscando.

SugerenciaSugerencia
 

Para obtener más información sobre comodines y expresiones regulares, vea la página de manual de bash (man bash). Recuerde que puede guardar el archivo como archivo de texto, tecleando man bash | col -b > bash.txt. Luego, podrá abrir y leer el archivo con less o vi (vi bash.txt). Si desea imprimir el archivo, sepa que es bastante largo.

Sabemos que el archivo se llama "sneak____.txt," teclee:

ls sneak*.txt

y obtendrá el nombre del archivo:

sneakers.txt

Probablemente utilice el asterisco (*) que es más frecuente para la búsqueda. El asterisco buscará todo lo que coincida con la estructura que está buscando. Incluso si teclea:

ls *.txt

o:

ls sn*

Encontrará sneakers.txt y cualquier otro archivo cuyo nombre termine con .txt o que comience con sn. Los comodines le ayudan a ampliar su búsqueda lo máximo posible.

Un modo de filtrar la búsqueda es usando el signo de interrogación (?). Como el asterisco, el uso de ? le puede ayudar a localizar un archivo mediante la búsqueda de estructuras que coincidan.

En este caso, ? es útil para un sólo carácter, de manera que si estaba buscando sneaker?.txt, obtendrá sneakers.txt como resultado, y/o sneakerz.txt, si existiera este nombre de archivo.

Las expresiones regulares son más complejas que el asterisco o el signo de interrogación.

Cuando un asterisco forma parte de un nombre de archivo, como puede ser el caso del archivo sneakers.txt si se llamara sneak*.txt, es el momento de usar expresiones regulares.

Utilizando el símbolo (\), puede especificar que no desea buscar todo mediante el uso de asterisco, sino que desea buscar un archivo con un asterisco en el nombre.

Si el archivo se llama sneak*.txt, escriba:

sneak\*.txt

Aquí tiene una breve lista de comodines y expresiones regulares: