Manipular y analizar el contenido de archivos en Linux

Vamos a ver varios comandos para manipular y analizar el contenido de archivos en Linux.

 

  • comando grep
  • comando wc
  • comando cut
  • comando paste
  • comando sort
  • comando diff

 

 

Comando grep

 

–> Comando grep: buscar en un archivo

El comando grep busca las palabras coincidentes en el archivo en el que indiquemos buscar.
 
En este caso le indicamos al comando grep que deseamos buscar el texto “prueba” dentro del archivo “hola
 
grep | buscar dentro de archivos
 

Podemos ver que ha encontrado el texto deseado y lo muestra.

 

–> Comando grep: buscar en archivos de directorios

 
Para buscar en los archivos de un directorio entero, hemos de proporcionar el nombre de directorio.
 
Si deseamos buscar en el directorio actual, teclearemos:

grep -r "prueba" .

 
grep | buscar dentro de directorios
 
Es decir, queremos buscar el texto “prueba” en los archivos del directorio actual (por eso ponemos un punto al final). También hemos incluido la opción -r (recursivo) que busca recursivamente en todos los subdirectorios del directorio actual.

 

También podríamos especificar el directorio en lugar de poner un punto (el punto significa que busque en el directorio actual).
 
grep | buscar dentro de fichero
 

 

grep: parámetro -i (evita distinguir entre mayúsculas y minúsculas)

 
Por defecto grep distingue entre mayúsculas y minúsculas, pero podemos evitarlo utilizando el parámetro -i
 
grep -i | case sensitive

 

 

* Otros trucos interesantes para utilizar el comando grep en Linux

 
–> Para mostrar el número de líneas, usaremos el parámetro -n
 
por ejemplo:

grep -n "prueba" hola

 
–> aunque en la siguiente captura hemos incluido también el parámetro -i, para evitar distinguir entre mayúsculas y minúsculas:

grep | mostrar numero de linea

 

 
–> Mostrar las líneas no coincidentes con el texto que busquemos en un documento (parámetro -v):

grep -v "pruebas" hola

 
Buscará y mostrará por pantalla las líneas de un documento/archivo que no coinciden con el texto que buscamos:

grep -v
 

 

Comando wc

 
El comando wc en Linux sirve para contar número de palabras, líneas y caracteres en un archivo.
 
Por ejemplo, primero mostraremos el contenido del archivo “hola”, y después ejecutaremos 2 parámetros del comando wc para ver cómo funciona.
 
Después de ver el contenido del archivo hola, vamos a mostrar la línea con más caracteres del archivo, con el parámetro -L

wc -L hola

 

Y ahora utilizaremos el parámetro -l para imprimir el número de líneas del archivo:

wc -l hola

 
parametros comando wc

 

 

–> Ayuda comando wc en Linux

ayuda comando wc
 

 

Comando cut

 
El comando cut extrae partes de ficheros. Podemos especificar qué deseamos extraer.
 
Primero, por medio del comando echo, crearemos un archivo con varias filas y columnas

por ejemplo:

echo -e "columna1 columna2 columna3\ncol1-fila2 col2-fila2" >> nuevo.txt

 
crear archivo columnas y filas con echo linux
 

Ahora mostramos el contenido del archivo creado:

cat nuevo.txt

 
mostrar archivo columnas y filas

 

A continuación, con el comando cut, extraeremos la primera columna de todas las filas:

cut -f1 -d' ' nuevo.txt

 
comando cut | extraer filas fichero linux
 

A continuación vemos una explicación de las opciones del comando cut en linux:

ayuda comando cut
 
–> Con el parámetro -f seleccionamos el número de columna deseada.

–> Con el parámetro -d especificamos el delimitador.

 

 

Comando paste

 
El comando paste combina las líneas de archivos.

 

Primero mostramos el contenido del archivo1.txt y el archivo2.txt

y luego ejecutamos el comando paste, y vemos cómo ha combinado las líneas de los archivos:

paste archivo1.txt archivo2.txt

 
comando paste linux
 

Pero si utilizamos el parámetro -s, vemos que combina las líneas, pero no en la misma línea, porque lo que hace es usar un fichero cada vez (no los dos a la vez):
 
paste -s | Linux

 

–> Ayuda del comando paste en Linux:

paste -s

 

 

Comando sort

 
El comando sort ordena lineas de texto, a partir de varios criterios.
 

Si no añadimos ningún parámetro, ordenará de alfabéticamente por defecto.

comando sort | ordenar
 

Otros parámetros del comando sort:

-b (descarta los espacios en blanco al principio)

-n (ordena por valor numérico)

-o archivo.txt (escribe el resultado el archivo.txt)

 

 

Comando diff

diff compara ficheros línea por línea.
 
comando diff Linux
 
< denota que es el primer archivo

> denota que es el segundo archivo

 

Los siguientes parámetros del comando diff también son muy útiles:

-b (ignora los espacios en blanco)

-r (recursivo)

-q (indica solo los ficheros diferentes)

 

diff también nos permite comparar los archivos de directorios, y nos mostrará los archivos que difieren en los directorios.

por ejemplo:

diff -rq dir1 dir2

 
diff - comparar dos directorios
 
diff nos aclara que un archivo con el mismo nombre es distinto en un directorio y en el otro.

También nos especifica los archivos que solo están en uno de los dos directorios.

 

 

En este post hemos visto unos cuantos comandos Linux para manipular y analizar el contenido de archivos en Linux.

Si quieres ampliar información sobre este tema, puedes leer este enlace.