{"id":15584,"date":"2017-05-16T04:00:06","date_gmt":"2017-05-16T02:00:06","guid":{"rendered":"https:\/\/eltallerdelbit.com\/?p=15584"},"modified":"2020-08-24T00:13:56","modified_gmt":"2020-08-23T22:13:56","slug":"manipular-analizar-contenido-archivos-linux","status":"publish","type":"post","link":"https:\/\/eltallerdelbit.com\/manipular-analizar-contenido-archivos-linux\/","title":{"rendered":"Manipular y analizar el contenido de archivos en Linux"},"content":{"rendered":"
<\/p>\n
<\/p>\n
<\/p>\n
<\/p>\n
El comando grep<\/em> busca las palabras coincidentes en el archivo en el que indiquemos buscar. Podemos ver que ha encontrado el texto deseado y lo muestra.<\/p>\n <\/p>\n <\/p>\n Tambi\u00e9n podr\u00edamos especificar el directorio en lugar de poner un punto (el punto significa que busque en el directorio actual). <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Y ahora utilizaremos el par\u00e1metro -l para imprimir el n\u00famero de l\u00edneas del archivo:<\/p>\n <\/p>\n <\/p>\n –> Ayuda comando wc<\/em> en Linux<\/span><\/p>\n <\/p>\n por ejemplo:<\/p>\n Ahora mostramos el contenido del archivo creado:<\/p>\n <\/p>\n A continuaci\u00f3n, con el comando cut<\/em><\/strong>, extraeremos la primera columna de todas las filas:<\/p>\n A continuaci\u00f3n vemos una explicaci\u00f3n de las opciones del comando cut<\/em><\/strong> en linux:<\/p>\n –> Con el par\u00e1metro -d especificamos el delimitador.<\/p>\n <\/p>\n <\/p>\n <\/p>\n Primero mostramos el contenido del archivo1.txt y el archivo2.txt<\/p>\n y luego ejecutamos el comando paste, y vemos c\u00f3mo ha combinado las l\u00edneas de los archivos:<\/p>\n Pero si utilizamos el par\u00e1metro -s, vemos que combina las l\u00edneas, pero no en la misma l\u00ednea, porque lo que hace es usar un fichero cada vez (no los dos a la vez): <\/p>\n –> Ayuda del comando paste<\/em> en Linux:<\/span><\/p>\n <\/p>\n <\/p>\n <\/p>\n Si no a\u00f1adimos ning\u00fan par\u00e1metro, ordenar\u00e1 de alfab\u00e9ticamente por defecto.<\/p>\n Otros par\u00e1metros del comando sort<\/em><\/strong>:<\/span><\/p>\n -b (descarta los espacios en blanco al principio)<\/p>\n -n (ordena por valor num\u00e9rico)<\/p>\n -o\u00a0archivo.txt (escribe el resultado el archivo.txt)<\/p>\n <\/p>\n <\/p>\n diff compara ficheros l\u00ednea por l\u00ednea. > denota que es el segundo archivo<\/p>\n <\/p>\n Los siguientes par\u00e1metros del comando diff<\/em><\/strong> tambi\u00e9n son muy \u00fatiles:<\/p>\n -b (ignora los espacios en blanco)<\/p>\n -r (recursivo)<\/p>\n -q (indica solo los ficheros diferentes)<\/p>\n <\/p>\n diff<\/em><\/strong> tambi\u00e9n nos permite comparar los archivos de directorios, y nos mostrar\u00e1 los archivos que difieren en los directorios.<\/p>\n por ejemplo:<\/p>\n Tambi\u00e9n nos especifica los archivos que solo est\u00e1n en uno de los dos directorios.<\/p>\n <\/p>\n <\/p>\n
\n
\nEn este caso le indicamos al comando grep que deseamos buscar el texto “prueba<\/em>” dentro del archivo “hola<\/em>”
\n
\n
\n <\/p>\n–> Comando grep<\/em>: buscar en archivos de directorios<\/h4>\n
\nPara buscar en los archivos de un directorio entero, hemos de proporcionar el nombre de directorio.
\n
\nSi deseamos buscar en el directorio actual, teclearemos:<\/p>\ngrep -r \"prueba\" .<\/pre>\n
\n
\n
\nEs decir, queremos buscar el texto “prueba<\/em>” en los archivos del directorio actual (por eso ponemos un punto al final). Tambi\u00e9n hemos incluido la opci\u00f3n -r<\/em> (recursivo<\/em>) que busca recursivamente en todos los subdirectorios del directorio actual.<\/p>\n
\n
\n
\n <\/p>\ngrep: par\u00e1metro -i (evita distinguir entre may\u00fasculas y min\u00fasculas)<\/h4>\n
\nPor defecto grep\u00a0distingue entre may\u00fasculas y min\u00fasculas, pero podemos evitarlo utilizando el par\u00e1metro -i<\/em>
\n
\n<\/p>\n * Otros trucos interesantes para utilizar el comando grep en Linux<\/span><\/h4>\n
\n–> Para mostrar el n\u00famero de l\u00edneas, usaremos el par\u00e1metro -n<\/em>
\n
\npor ejemplo:<\/p>\ngrep -n \"prueba\" hola<\/pre>\n
\n–> aunque en la siguiente captura hemos incluido tambi\u00e9n el par\u00e1metro -i, para evitar distinguir entre may\u00fasculas y min\u00fasculas:<\/p>\n
\n–> Mostrar las l\u00edneas no coincidentes con el texto que busquemos en un documento (par\u00e1metro -v):<\/p>\ngrep -v \"pruebas\" hola<\/pre>\n
\nBuscar\u00e1 y mostrar\u00e1 por pantalla las l\u00edneas de un documento\/archivo que no coinciden con el texto que buscamos:<\/p>\n
\n <\/p>\nComando wc<\/em><\/strong><\/span><\/h3>\n
\nEl comando wc<\/em> en Linux sirve para contar n\u00famero de palabras, l\u00edneas y caracteres en un archivo.
\n
\nPor ejemplo, primero mostraremos el contenido del archivo “hola”, y despu\u00e9s ejecutaremos 2 par\u00e1metros del comando wc<\/em> para ver c\u00f3mo funciona.
\n
\nDespu\u00e9s de ver el contenido del archivo hola, vamos a mostrar la l\u00ednea con m\u00e1s caracteres del archivo, con el par\u00e1metro -L<\/p>\nwc -L hola<\/pre>\n
wc -l hola<\/pre>\n
\n<\/p>\n
\n <\/p>\nComando cut<\/em><\/strong><\/span><\/h3>\n
\nEl comando cut<\/em><\/strong> extrae partes de ficheros. Podemos especificar qu\u00e9 deseamos extraer.
\n
\nPrimero, por medio del comando echo<\/em>, crearemos un archivo con varias filas y columnas<\/p>\necho -e \"columna1 columna2 columna3\\ncol1-fila2 col2-fila2\" >> nuevo.txt<\/pre>\n
\n
\n <\/p>\ncat nuevo.txt<\/pre>\n
\n<\/p>\ncut -f1 -d' ' nuevo.txt<\/pre>\n
\n
\n <\/p>\n
\n
\n–> Con el par\u00e1metro -f seleccionamos el n\u00famero de columna deseada.<\/p>\nComando paste<\/span><\/h3>\n
\nEl comando paste<\/em><\/strong> combina las l\u00edneas de archivos.<\/p>\npaste archivo1.txt archivo2.txt<\/pre>\n
\n
\n <\/p>\n
\n
\n<\/p>\nComando sort<\/em><\/strong><\/span><\/h3>\n
\nEl comando sort<\/em><\/strong> ordena lineas de texto, a partir de varios criterios.
\n <\/p>\n
\n <\/p>\nComando diff<\/em><\/strong><\/span><\/h3>\n
\n
\n
\n
\n< denota que es el primer archivo<\/p>\ndiff -rq dir1 dir2<\/pre>\n
\n
\n
\ndiff<\/em><\/strong> nos aclara que un archivo con el mismo nombre es distinto en un directorio y en el otro.<\/p>\n