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”
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" . |
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: 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
* 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:
–> 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:
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 |
–> Ayuda comando wc en Linux
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 |
Ahora mostramos el contenido del archivo creado:
cat nuevo.txt |
A continuación, con el comando cut, extraeremos la primera columna de todas las filas:
cut -f1 -d' ' nuevo.txt |
A continuación vemos una explicación de las opciones del comando cut en linux:
–> 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 |
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):
–> Ayuda del comando paste en Linux:
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.
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.
< 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 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.