6.0 Editar, ordenar, cortar y grep
Autora: Dra. Alejandra Rougon
Este trabajo está bajo la licencia Creative Commons Atribución-NonComercial 4.0 Licencia Internacional.
🔍 Objetivos de aprendizaje
Después de completar esta lección aprenderás cómo:
- Editar archivos en la línea de comandos
- Ordenar el contenido de archivos en orden alfabético y numérico
- Cortar columnas de archivos
- Buscar cadenas específicas dentro de archivos
Ya has aprendido cómo crear un archivo con cat > New_file
, sin embargo, cat
no es un editor de texto. Existen varios editores de texto para la línea de comandos. Los más comunes son vi
, vim
y nano
. En tu terminal virtual tienes un editor de texto con una interfaz gráfica. Sin embargo, cuando trabajes de manera remota en un cluster bioinformático para Cómputo de Alto Desempeño [HPC] es muy probable que no puedas usar ningún software con interfaz gráfica. Así es que es muy importante que aprendas a usar editores de texto en la línea de comandos.
vim
& vi
Los editores de texto vim
y vi
son muy similares. Aprenderemos los comandos más importantes para vim
y también funcionarán para vi
. Sin embargo si quieres aprender más opciones puedes ver la documentación de vim.
- Crear un nuevo archivo
vim Name_Of_File
- Editar el archivo con
i
de insertar - Guarda los cambios y sal del archivo
Esc
:wq!
- Sal del archivo sin guardar cambios
Esc
:q!
Ahora vamos a crear un directorio dentro del directorio Documents
llamado Practice
. Ahora ve dentro de Practice
y crea un archivo llamado numbers.txt
Now let's create a folder inside the folder Documents
named Practice
. Then go inside Practice
and create a file called numbers.txt
Después tienes que teclear i
para poder insertar texto. Ahora escribe el siguiente texto:
Esc
seguida de :wq!
y Enter
.
Puedes verificar el contenido con less
, more
or cat
. Nota: *No agregues >
cuando abras un archivo para leerlo, ya que si lo haces eliminarás el contenido previo y se escribirá sobre él.
nano
La ventaja de usar nano
es que no tienes que aprenderte el menú, ya que se muestra en la pantalla. La tecla Ctrl
es especificada por un ^
. El problema de nano
es que algunas veces no está instalado en los servidores. Así es que tendrías que instalarlo.
- Crear un archivo
nano Name_Of_File
- Guardar los cambios
Ctrl
+o
Enter
- Salir
Ctrl
x
Vamos a crear un archivo llamado toygenes.txt
en el mismo directorio Practice
.
En esta ocasión vamos a escribir un archivo tabular. Eso significa que será un archivo con columnas y que van a estar separadas por una tabulación utilizando la tecla tab
en lugar de la barra espaciadora
. Escribe el siguiente texto (utilizando un tab
después de cada nombre.
Ctrl
o
Después verás esta pantalla
Sólo presiona Enter
y luego salte con Ctrl
x
Recuerda verificar que tu archivo está correcto.
sort
El comando sort
es usado para ordenar un archivo. En otras palabras, acomodar las líneas en una list en un orden en particular. Por defecto, se ordenan en orden alfabético.
Inténtalo con el archivo toygenes.txt
sort
también ordenará los números en orden alfabético. Para ordenar los números en orden numérico necesitamos la opción -n
.
Si tienes una mezcla de letras y números, puedes usar la opción -V
para ordenar numéricamente, como en las versiones de software. Como en el siguiente ejemplo.
Ahora crea el archivo llamado amounts.txt
con el siguiente contenido:
El comando sort
tiene varias funciones útiles. Si quieres ordenar en orden reverso usa -r
-k
. Por ejemplo, vamos a ordenar toygenes.txt
basándonos en la segunda columna.
Puedes también ordenar un archivo y eliminar duplicados para obtener únicamente los registros únicos con -u
. Por ejemplo, inténtalo con el siguiente archivo.
Recuerda que siempre puedes guardar los resultados dirigiendo la salida con >
a un nuevo archivo.
También puedes ordenar meses con sort -M
cut
El comando cut
corta columnas específicas, por defecto separadas por una tabulación tab
. Puedes especificar la columna con -f
de field. Selecciona la segunda columna por el archivo toygenes.txt.
-d
. Por ejemplo, para una lista que tiene columnas separadas por espacios
También puedes seleccionar columnas especificando la posición de los bytes con -b
. Para ver más opciones, recuerda que siempre puedes ver el manual man cut
.
grep
Uno de los comandos más útiles es grep
, el cual te permitirá hacer búsquedas de cadenas. Imprimirá sólo las líneas que contienen la cadena que hayas indicado. Por ejemplo, vamos a buscar la cadena tomato
en el archivo toygenes.txt
-v
. Te mostrará las líneas que no contengan la cadena.
También puedes contar el número de ocurrencias con -c
. ¿Cuántas líneas contienen la letra a
en toygenes.txt
?
🔑 En esta lección has aprendido a:
- Editar archivos en la línea de comandos con
vim
,vi
&nano
- Ordenar el contenido de un archivo en orden alfabético o numérico con
sort
- Cortar columnas con
cut
- Buscar cadenas específicas dentro de archivos con
grep