Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Su majestad: grep

14/21
Recursos

Aportes 116

Preguntas 30

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

grep es un comando con muchas utilidades, la verdad es que tiene muchos casos de uso, aquí te dejo algunos que a mí me han sido de utilidad 👀👇:

  1. Buscar algún paquete en específico que tengas instalado:
dpkg --get-selections | grep nombreDelPaquete
# dpkg --get-selections te dirá todos tus paquetes instalados
# grep filtrará esa lista con el paquete que te interesa
  1. Filtrar algún archivo en específico después de un ls:
ls -al | grep myFile.txt

# ls te dará la lista de todos tus archivos
# grep filtrará todos y te mostrará únicamente el que deseas
  1. Buscar algún contenido en específico dentro de algún archivo:
cat unArchivoLargo.txt | grep "La línea que busco"

# cat Te listará todo el contenido de ese archivo
# grep te filtrará únicamente lo que quieres ver

  1. Buscar una línea en específico en diferentes archivos por medio de un patrón:
grep "string" archivo_*

# grep buscará la palabra "string" en todos los archivos que comienzen por "archivo_" y te los mostrará.
  1. Buscar usando expresiones regulares (te recomiendo aprender expresiones regulares, son MUY poderosas 👀):

Imagina que tienes un archivo llamado test.txt y adentro contiene la siguiente frase:

Imagina que quieres buscar algo

Entonces, podemos usar grep así:

grep "Imagina .* algo" test.txt

# grep buscará alguna coincidencia, la expresion .* indica que ahí dentro puede haber una o más letras, cualquier que sea, así que podrías leerla como: Imagina (cualquier cosa) algo.

Esto encontrará justo la frase que quieres:

Imagina que quieres buscar algo

.
Hay muchos más casos de uso para grep, te dejo este blog que habla de algunos cuantos casos de uso más 👀👇:

15 Practical Grep Command Examples In Linux / UNIX

Sin duda uno de los comandos mas útiles.
Ojala Platzi saque cursos más especializados en cuanto a la terminal y línea de comandos.
¡Estaría genial una escuela de Linux!, ¿no creen?

Por si acaso quieren descargar el archivo directamente a la consola:

wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=1d8Z5VyS34oAuofbFMRl7_GatYAbSRAHG' -O movies.csv

Se debe definir el id del documento, que esta dentro del enlace compartido en Recursos.

📌 El comando grep nos permite encontrar texto que contenga un patrón dentro de uno o varios archivos de manera rápida.

Aca subo los apuntes hechos en formato pregunta respuesta para que sea mas sencillo el repaso, si usan anki es bastante mas util

  • que hace grep

    • nos permite encontrar encontrar coincidencias en un archivo
  • que hace el parámetro -i en grep

    • ignorá si es mayúscula o minúscula
  • que hace el parámetro -v

    • me trae las coincidencias que no tengan el parámetro dado
  • que hace wc

    • es el comando que nos permite contar la cantidad de palabras, lineas y bits
  • como son los parámetros de wc

    • -l : el numero de líneas
    • -w el numero de palabras
    • -c el numero de bits

Con el comando ‘grep’ podemos buscar dentro de:

  • Un archivo de texto:
    cat file.txt | grep “palabra a buscar”
  • Varios archivos de texto que se encuentren en un directorio.
    grep -r . -e “palabra a buscar” <- Donde “.” es el directorio donde empezará a buscar.
  • Todo el árbol de directorios, que el nombre de los archivos coincidan con la búsqueda.
  • Standar Output y Standar Error:
    ipconfig | grep addr

Y una buena alternativa con otras soluciones similares es AWK (y Sed):
![](

Con AWK puedes filtrar información de un archivo o comando (como si se tratase de un Excel) por ejemplo:
La salida de un: ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=60 time=23.9 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=60 time=23.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=60 time=23.8 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=60 time=24.0 ms

Pero si solo quieres imprimir la IP y el tiempo de respuesta, tienes que hacer eso:

ping 8.8.8.8 | awk ‘{ print $4 $7 }’

8.8.8.8:time=50

Las columnas son separadas por “:”.

14. Su majestad: grep

Veamos los comandos de clase, recordar que grep usa expresiones regulares (regex):

  1. grep -i the movies.csv : Lo que busca este comando es cualquier línea que contenga la palabra “the”, asi sea mayúscula o minúscula.
  2. grep -ci the movies.csv : Lo que hace este comando es encontrar el numero de veces que aparece la palabra “the” dentro del archivo, así sea mayúscula o minúscula.
  3. grep -vi towers movies.csv > sintowers.txt : Lo que hace este comando es buscar todas las lineas que no tienen la palabra towers, y el output ponerlo en un archivo de texto llamado “sintowers”.
  4. wc: Cuenta la cantidad de palabras de un archivo.
  5. wc -l: Cuenta la cantidad de lineas de un archivo.

Notas 😄

Su majestad: grep.

  • Es uno de los comandos mas útiles, y de los mas potentes dentro de Linux.🤖

  • Nos permite encontrar coincidencias de una búsqueda dentro de una archivo 🤯.

  • grep <Expresión regular> <archivo>: El primer parámetro es una expresión regular, y es diferente a las wildcarts; es muy versátil para realizar búsquedas. ¡Hay un curso de eso en Platzi!.

  • Tenemos varías opciones:

    • -i para ignorar case-sensitive.
    • -c cuenta el número de elementos.
    • -v para hacer búsqueda complementaria, esto es, todos los elementos que no coincidan.
  • Puedes usar grep junto con otros comandos. Por ejemplo, para filtar los resultados de ls, algo cómo ls -lh | grep > busqueda.txt 🧠

  • wc <archivo> cuenta el número de palabras. Opciones:

    • -l cuenta el número de lineas.
    • -w cuenta el número de palabras.
    • -c número de bits.
  • Curso de expresiones regulares:

    Curso de Expresiones Regulares - Platzi

  • Las expresiones regulares pueden ser útiles en otros contextos, por ejemplo, en otros lenguajes de programación 🐍 que las soporten.

Para los que usan WSL y quieran descargar el archivo de la clase. Simplemente instalen el wget

  1. sudo apt install wget
    Luego el link del archivo.
  2. wget https://static.platzi.com/media/public/uploads/movies_afffe2e6-a55c-47f0-8895-9d37c9cd9eb8.csv
    Ahora solo renombran el archivo con mv
  3. mv movies_afffe2e6-a55c-47f0-8895-9d37c9cd9eb8.csv movies.csv

Y listo ya tienen el archivo de la clase en WSL.

Si hicieran un curso con todos los comandos posibles y mas útiles duraría mas de 15 horas jajaja 😦

Su majestad grep
Permite encontrar coincidencias en la búsqueda dentro de un archivo de texto, no necesariamente un archivo puede ser incluso la salida de info de la terminal ya que después de todo es texto.

  • $ grep <palabara a buscar <archivo a buscar> // aquí estoy buscando una coincidencia, y me va a mostrar por pantalla ejemplo: $ grep Towers movies.csv, busco en el archivo movies todas las películas que tengan las palabra towers

  • $ grep <parametro> <palabara a buscar> <archivo a buscar> // vamos a buscar todas las coincidencias que tengan “the” y que estén en el archivo movies, pero con el parámetro “-i” que nos permite que tanto las palabras que empiecen con mayúscula y minúscula se muestren, ya que con el anterior solo buscaba por defecto los “the” que empezaban con minuscula, ejemplo $ grep -i the movies.csv

  • $ grep –i the movies.csv | less // nos permite hacer scrol, es decir verlo de manera adecuada o poco a poco.

  • $ grep -c the movies.csv // si el parámetro lo cambiamos por –c en este caso nos muestra el número de veces que se encuentra una coincidencia y si le agregamos el parámetro “-ci” básicamente mostrara más numero de coincidencias debido a lo ya explicado con -i“

  • $ grep -v the movies.csv // nos muestra las opciones que no coinciden con “the” si agregamos el parámetro por ejemplo –vic excluirá the pero tanto las coincidencias en mayúscula y minúscula y además las contara.

  • **Bonus: **El comando wc nos indica varios datos útiles en un archivo entonces si le pasamos el comando al archivo: $ wc movies.csv, nos mostrara lo sigt. 9126 30006 477779 movies.csv, donde 9126 significa las líneas, 30006 cuantos caracteres, 477779 numero de bits y finalmente el nombre del archivo. Este comando tiene varios parametrs también como: -l, -w, -c donde respectivamente nos muestra solo las líneas, caracteres y numero de bits.

Saben como meter la base de datos de peliculas a su WSL ?

wget url/file.csv

la URL del archivo la consiguen dando clic derecho sobre el file movies.csv que esta en la descripcion (NOTA: NO del link de google drive sino del file directamente)

Les comparto un modulo de expresiones regulares con JavaScript de freeCodeCamp muy bueno para que aprendan lo basico de ellas, de verdad son de una gran utilidad y hacen la diferencia a la hora de trabajar con busquedad de coincidencias en strings.
.
JavaScript Algorithms and Data Structures: Regular Expressions
.
Si saben ingles les recomiendo que lo tomen en ingles, asi practican y aprender dos cosas muy importantes al mismo tiempo, y sino, creo que todo el curso de freeCodeCamp ya esta en español.

Para salir de less y volver a la linea de comandos pulsa la tecla ( q ). No lo olviden.

A mi me ha servido mucho grep cuando por ejemplo:

  1. Tengo una carpeta con cientos de archivos xml
  2. Necesito mover, copiar o enviar los archivos que en contenido tengan un id de mensaje.

Ejecuto un:

grep ‘<MsgId>1000518217</MsgId>’ *.xml

Y su resultado es

El nombre del archivo y el resultado del grep.

Un uso diaro de grep para mi es usarlo con el comando history para buscar algún comando que ejecuté. ejemplo:

$>history | grep "algun texto"

Por si alguien necesita descargar directamente el archivo a su instalacion de WSL aqui le dejo el comando :

wget -O movies.csv https://static.platzi.com/media/public/uploads/movies_afffe2e6-a55c-47f0-8895-9d37c9cd9eb8.csv

No olviden que pueden consular todos los parámetros que tiene cada comando usando man <comando> o si tienen tldr es aún mejor porque te da ejemplos, anotación uno no es mejor que porque sirven para cosas diferentes, más bien se complementan

En estos casos podemos utilizar el comando grep para filtrar las líneas que queremos visualizar utilizando (o no) expresiones regulares:

grep “palabra-clave” archivo_gigante.txt

Si nos da igual si la palabra clave incluye mayúsculas o minúsculas podemos utilizar el flag -i:

grep -i “pAlaBra-cLAvE” archivo_gigante.txt

También podemos verificar si la línea incluye esta palabra clave al final:

grep “palabra-clave$” archivo_gigante.txt

O si la incluye al principio:

grep “^palabra-clave” archivo_gigante.txt

Mas ejemplos

grep Towers movies.csv
grep the movies.csv
grep -i the movies.csv -- quitar case sensitive
grep -c -i the movies.csv -- contar concidencias
grep  -vi the movies.csv -- lo que no coincida
grep  -vic the movies.csv -- contar lo que no coincide
grep  -vi the movies.csv  >> sinThe.txt -- guardar archivos
wc movies.csv -- Contar palabras 
wc -l movies.csv -- solo las lineas
wc -w movies.csv -- solo las palabras
wc -c movies.csv -- solo numero de bits

grep me hizo explotar la cabeza de verdad es un comando muy potente, un caso de uso al que le puedo sacar mucho provecho en el día a día es saber que archivos de todo un proyecto manejan cierta tabla, u algo en particular que necesite saber quien lo usa para poder depurar mejor el código. es una herramienta que de ahora en mas me hará la vida mas fácil.

La sintaxis de grep es la siguiente:

$ grep [OPCIONES] PATRONES [ARCHIVO ...]
$ grep [OPCIONES] -e PATRONES ... [ARCHIVO ...]
$ grep [OPCIONES] -f ARCHIVO-DE-PATRONES ... [ARCHIVO ...]

Hay cuatro grandes variantes de grep, controladas por las siguientes opciones:

**-G, --basic-regexp : **Interpreta el patrón como una expresión regular básica. Éste es el comportamiento predeterminado.
-E, --extended-regexp : Interpreta el patrón como una expresión regular extendida.
**-F, --fixed-strings: **Interpreta el patrón como una lista de cadenas de caracteres fijas, separadas por saltos de línea; se busca la concordancia de una cualquiera de ellas.
**-P, --perl-regexp: **Interpreta el patrón como expresiones regulares compatibles con Perl.

Además, están disponibles tres programas variantes de grep que son:

**egrep : **Similar (pero no idéntico) a grep −E.
**fgrep **: Es lo mismo que grep −F.
**rgrep : **Es lo mismo que grep −r.
Estas variantes están obsoletas, pero se proporcionan por compatibilidad con versiones anteriores.

Hola! Tengo WSL y no sabia como descargar el archivo en mi consola. Usé este comando para descargarlo directamente:
wget -drc https://static.platzi.com/media/public/uploads/movies_afffe2e6-a55c-47f0-8895-9d37c9cd9eb8.csv

y listo quedó guardado 😃

Yo utilizo mucho grep con history
Si quiero un comando especifico que he usado en el pasado, lo busco con grep de esta manera:

history | grep -i texto_que_contenga_el_comando

De esta manera, lo que hace es buscar dentro de standard output usando el texto que contenga el comando. Es muy util para recordar comandos que he usado en el pasado.

Les comparto mis apuntes, espero que le sirva. 😄

grep

Grep nos permite encontrar coincidencias de una búsqueda dentro de un archivo de texto, de cualquier texto, por ejemplo un standard output.

Grep utiliza expresiones regulares y estás son una herramienta superpoderosa de búsqueda. Se puede usar grep con cualquier lenguaje de programación que tenga soporte para ellas.

Usamos grep para poder filtrar información y errores.

Este comando busca todas las líneas que contengan la expresión regular que estamos buscando.

$ grep [expresion regular a buscar] archivo

Key sensitive

Quiere decir que si importan las mayúsculas y minúsculas, por defecto esto es tomado en cuenta al momento de usar grep.

-i

Le estamos diciendo que ignore el key sensitive

$ grep -i [expresion regular a buscar] archivo

Pipe operator

Ejemplo

$ grep -i the movies.csv | less

Ocurrencias

Pasa saber cuantas ocurrencias de cierta expresión regular hay en un archivo.

-c

Cuenta el número de ocurrencias que hay.

$ grep -c [expresion regular a buscar] archivo

También lo podemos usar con otros argumentos tales como i.

$ grep -ci [expresion regular a buscar] archivo

Líneas que no contengan lo que buscamos

Para buscar las líneas que no tienen la expresión regular que coloquemos usamos el modificador v.

-v

$ grep -vi [expresion regular a buscar] archivo

wc o word count

Nos sirve para contar cuantas palabras tenemos en un archivo.

$ wc archivo
#Resultado
columna1 columna2 columna3 columna4

Cuando usamos este comando tendremos cuatro columnas.

  1. Representa la cantidad de líneas que hay en el archivo.
  2. Representa la cantidad de letras o caracteres que hay en el archivo.
  3. Representa el número de bits.
  4. Representa el nombre del archivo.

wc -l

Nos permite contar el número de líneas.

$ wc -l archivo
#Resultado
columna1 columna2

Cuando usamos este comando tendremos cuatro columnas.

  1. Representa la cantidad de líneas que hay en el archivo.
  2. Representa el nombre del archivo.

wc -w

Nos va a mostrar la cantidad de palabras.

$ wc -w archivo
#Resultado
columna1 columna2

Cuando usamos este comando tendremos cuatro columnas.

  1. Representa la cantidad de palabras que hay en el archivo.
  2. Representa el nombre del archivo.

wc -c

Nos va a dar el número de bits.

$ wc -c archivo
#Resultado
columna1 columna2

Cuando usamos este comando tendremos cuatro columnas.

  1. Representa la cantidad de bits que hay en el archivo.
  2. Representa el nombre del archivo.

Les comparto apuntes del mismo curso pero del 2019

Clase: Utilidades batch y batch avanzadas

Procesamiento por lotes o batch

La idea de estas herramientas es que se le pase toda la información que necesitan al momento de la invocación y luego se obtenga los resultados.

Utilidades batch

cat

Nos muestra el contenido completo de un archivo.

$ cat archivo

head

Nos permite ver las primeras líneas de nuestro archivo.

$ head archivo

Modificador

Podemos usar el modificador -n cantidad de lineas.

$ head -n cantidad-de-lineas archivo

Este modificador nos permite ver las cantidades de líneas que nosotros deseemos.

tail

Es lo inverso de head en vez de mostrar las primeras líneas, este muestra las últimas líneas.

$ tail archivo

También podemos usar el mismo modificador que tenemos en head.

Utilidades batch avanzadas

grep

Esta utilidad permite trabajar con expresiones regulares dentro de un archivo. Va a mostrar las líneas que coincidan con la expresión regular que utilicemos.

$ grep expresión-regular archivo

-i: Con este modificador hacemos que no distinga entre las mayúsculas y minusculas.

$ grep -i expresión-regular archivo

Al colocar comillas y un signo de pesos al final de la expresión regular, estaremos buscando líneas que terminen con la expresión regular que colocamos.

$ grep -i "expresion-regular$" archivo

sed

Es el tratamiento de flujos.

Sed quiere decir que Stream Editor, la idea aquí es trabajar sobre un flujo de texto que puede ser un archivo de texto. Este utiliza mucho las expresiones regulares y lo que puede hacer es reemplazar una expresión por otra, es un caso muy común.

Este comando tiene muchas utilidades, sirve para trabajar con archivos de texto en modo procesamiento por lotes.

$ sed 's/expresión-a-sustituir/expresión-sustituta/g' archivo

El comando sed por sí mismo no modifica al archivo, es como un cambio temporal, pero el archivo original se mantiene como estaba originalmente. Lo que hace sed es modificar el flujo (archivo) creando un nuevo flujo con la modificación.

'$d': Lo que hace es eliminar la última línea.

$ sed '$d' archivo

awk

También sirve para el tratamiento de texto en una forma distinta de como lo hace sed. Este comando sirve para trabajar con textos estructurados como archivos separados por comas, por tabs o por cosas similares.

El shell tiene un lenguaje como si fuese de scripting.

$ awk -F 'limitador' '{ print $1 }' archivo

'limitador': Este quiere decir cuál es el limitador que va a separar las columnas del archivo.

'{ print $1 }': Imprime solamente la primera columna de un archivo.

También se puede colocar ciertas condiciones para la ejecución del comando.

Ejemplo:

$ awk -F 'limitador' 'NR > 1 && $3 > 0 { print $1, $3 * $4 }' archivo

NR: es el number row o números de líneas.

En este caso imprime los resultados mientras se cumplan las condiciones dadas.

Clase: Comunicación entre procesos: Qué son y cómo se utilizan los flujos estándar

Esquema de procesamiento de datos


Tenemos los datos que ingresan a un proceso y luego este emite una información a la salida, es como una máquina de juego.

Los canales por lo que ingresan los datos a un proceso y por los que sale la información se conocen como flujos o frames.

Flujos estándar

La terminal conoce de tres flujos:

  • La entrada estándar.
  • La salida estándar.
  • El error estándar.

Es importante diferenciar los dos últimos, ya que quizás queramos que la salida de los errores sea distinta al as de la salida normal o resultado.

Procesamiento de datos

Por defecto esto canales están conectados a los periféricos, la entrada es el teclado y la salida de éxito o error es la pantalla.

Hay situaciones en donde no siempre ingresamos datos desde el teclado, quizás queremos ingresar los datos por un archivo que ya tenemos armado y para esto tenemos que usar un proceso llamado proceso de redirección, vamos a cambiar a la entrada estándar del teclado hacia un archivo.

Proceso de redirección

Para esto vamos a usar el modificador <.

Por ejemplo si quiero mandar una base de datos a mi servidor podemos usar algo como esto.

Ejemplo de la clase

$ mysql -h 127.0.0.1 -u root -p1234 < dump1.sql

Redirección de la salida

Se usa para guardar la entrada del teclado en un archivo en vez que se vea en pantalla.

>: Redireccionamos a la salida o el estándar output.

<: Redireccionamos la entrada o el estándar input.

>>: Agrego el resultado al final del archivo ya existente.

Ejemplo

$ ls > archivo-ver-mas-tarde.txt

Otra forma de redirección es que si no quiero crear un archivo nuevo puedo agregar esa información en un archivo que ya tengo creado.

Tuberías o pipes

La idea de estos es tomar la salida de un proceso y pasársela directamente como entrada al siguiente.

|: Es el símbolo del pipe.

more: Muestra un resultado largo en varias iteraciones, muestra páginas de lo que queremos ver y nos podemos mover línea por línea con enter o toda una página o pantallas con la barra espaciadora.

$ ls -l | more

wc: word count, permite contar cuantos caracteres, palabras o líneas hay en un archivo o en un flujo.

wc -l: Muestra la cantidad de líneas de un archivo o flujo.

$ cat archivo | wc -l

Modo de uso de wc

$ wc -l <fichero> número de líneas 
$ wc -c <fichero> número de bytes
$ wc -m <fichero> imprime el número de caracteres
$ wc -L <fichero> imprime la longitud de la línea más larga
$ wc -w <fichero> imprime el número de palabras

Fuente Wikipedia.

Clase:

Práctica: Tratamiento de texto (Apuntes propio de la clase)

Vamos a estudiar algunos comandos para procesar texto y emitir un resultado. Te recomiendo que no solo te quedes con la lectura, sino que experimentes todo lo que quieras con estos comandos, ya que más adelante los necesitarás para completar los desafíos.

Trabajo fundamental con archivos de texto

En clases anteriores estudiamos cómo crear y organizar nuestras carpetas. Ahora vamos a trabajar archivos que, por supuesto, debemos guardar en estos directorios que previamente creamos.

touch: nos permite crear archivos.

> touch archivo.txt

cat: nos permite visualizar todo el contenido de nuestros archivos.

> cat archivo.txt

head: es muy parecido al comando cat. También nos permite visualizar el contenido de nuestros archivos, pero debemos indicarle cuántas líneas nos debe mostrar. Por defecto nos mostrará las primeras 10.

# primeras 10 líneas 
> head archivo.txt

# primeras 20 líneas 
> head -n 20 archivo.txt

tail: funciona igual que el comando head, pero al revés. También debemos indicarle cuántas líneas nos debe mostrar, la diferencia es que no las mostrará de abajo hacia arriba. Por defecto nos mostrará las últimas 10.

# últimas 10 líneas
 > tail archivo.txt

# últimas 5 líneas
 > tail -n 5 archivo.txt

Búsqueda y tratamiento de texto

No solo podemos visualizar nuestros archivos (o parte de nuestros archivos) tal cual como escribimos, también podemos filtrar y cambiar el contenido que podemos ver en los archivos.

Por ejemplo: imagina que tenemos un archivo gigante, con cientos o incluso miles de líneas. Si imprimieramos el contenido de todo el archivo sería muy difícil encontrar el nombre de una persona o elemento específico.

Y se vuelve aún más complicado si necesitamos que las palabras que buscamos cumplan ciertas condiciones, como solo mayúsculas o minúsculas, que la siguiente o anterior palabra cumpla ciertas condiciones, etc.

En estos casos podemos utilizar el comando grep para filtrar las líneas que queremos visualizar utilizando (o no) expresiones regulares:

grep “palabra-clave” archivo_gigante.txt

Si nos da igual si la palabra clave incluye mayúsculas o minúsculas podemos utilizar el flag -i:

grep -i “pAlaBra-cLAvE” archivo_gigante.txt

También podemos verificar si la línea incluye esta palabra clave al final:

grep “palabra-clave$” archivo_gigante.txt

O si la incluye al principio:

grep “^palabra-clave” archivo_gigante.txt

También hay situaciones donde necesitamos modificar un poco la información que obtenemos de un archivo de texto.

Por ejemplo, imagina que nuestro archivo contiene un poema, frase o saludo para responderle a los usuarios de nuestra aplicación. El problema es que cada usuario tiene un nombre diferente.

¡Hola, NOMBRE_USUARIO! Felicitaciones por completartu desafíocon PUNTOS_USUARIO puntos.

No queremos editar este archivo. Solo necesitamos cambiar los caracteres NOMBRE_USUARIO por el verdadero nombre del usuario.

Para esto podemos utilizar el comando sed. Solo debemos indicarle que queremos realizar una sustitución (s/), la palabra que vamos a cambiar (NOMBRE_USUARIO), la nueva palabra que vamos a incluir (Ana) y cerrar con el símbolo /.

> sed ‘s/NOMBRE_USUARIO/Ana/’ archivo-saludo.txt

Ahora imagina que, además del nombre, debemos cambiar también la puntuación que obtuvo el usuario:

> sed ‘s/NOMBRE_USUARIO/Ana/; s/PUNTOS_USUARIO/35/’ archivo-saludo.txt

Puedes ver muchos más usos del comando sed en este tutorial: https://likegeeks.com/es/sed-de-linux/.

Para los que utilizamos WSL, una forma muy sencilla de copiar o mover archivos entre Windows y Ubuntu es crear un acceso directo de nuestro /home de linux en windows, utilizando el comando explorer.exe . luego crean el acceso directo de /home y lo colocan en el escritorio de windows.

La mayor utilidad que le he dado al comando grep hasta ahora, que soy relativamente nuevo en esto de Linux es:

myUser@myPC:~$ history | grep [comand]

Que me permite filtrar los diferentes comandos que he ido utilizando en el bash a lo largo del tiempo… 😅😅😅


- Mi aporte

“Parametros” de **grep:

  • i : no diferenciará entre mayúsculas y minúsculas.
  • w : fuerza que sólo encuentre palabras concretas.
  • v : selecciona las líneas que no coinciden.
  • n : muestra el número de la línea con las palabras de solicitadas.
  • h : elimina el prefijo del nombre del archivo Unix en la salida.
  • r : busca directorios recursivamente.
  • R : como -r pero sigue todos los enlaces simbólicos.
  • l : muestra sólo nombres de archivos con las líneas seleccionadas.
  • c: muestra sólo una cuenta por archivo de las líneas seleccionadas.
  • color: muestra los patrones coincidentes en colores.

Fuente: https://ubunlog.com/comando-grep/?utm_source=destacado-inside

Tengo WSL, y para usar el archivo de la clase, hice lo siguiente, espero que a alguien le sirva:

  1. Descargué el archivo normalmente desde mi navegador Web.
  2. Moví el archivo de mi carpeta descargas a documentos
  3. En la terminal de wsl, me fui hasta la raíz, y ahí utilicé:
cd mnt

con el que puedo navegar en las carpetas de windows.

  1. Ya después copié el archivo de documentos a mi carpeta de trabajo en /home/tu_usuario

grip, para buscar la coincidencias dentro de un archivo. Ej: grep expresión archivo
-i, para ignorar case sensitive
-c, para contabilizar el número de veces que hay coincidencias.
-v, para indicar que NO coincidan con la expresión ingresada

wc archivo, para contar líneas=9126 palabras=30006 letras=477779 movies.csv
-l para contar el número de líneas
-w para contar el número de palabras
-c que nos da el número de bits.

wc -c cuenta el número de bytes*

Creo que grep y find nos puede salvar la vida a muchos

Personalmente el comando que más utilizo con grep es

ls /RutaCarpeta | grep -Frin "palabraClave"

Esto lo que hace es buscar en todos los archivos de esa carpeta la palabraClave.

APORTE

Puedes usar el flag de -r para buscar de forma recursiva en los archivos de una ruta

Ejemplo:

grep -r 'texto a buscar' /path/*

con este comando grep buscara el texto que quieres en todos los archivos que esten dentro de esa ruta

Si algunas vez quieren volver a usar un comando de hace tiempo pero solo recuerdan algunas palabras, pueden usar grep así:

history | grep cowsay
  • Para buscar algo que contenga la palabra “towers”, podemos usar el comando “grep” para encontrarlo mas facil. Ejemplo: grep Towers (nombre del archivo o carpeta)

  • Para ignorar el “key sensitive” agregamos “.i”.

  • Para saber cuantas veces aparece una palabra en especifico, usamos “-c”.

  • Como desplegar una lista de TERMINOS QUE NO COINCIDAN usamos “-v”.

  • Para contar cuantas lineas de palabras, palabras y caracters tiene el archivo usamos Words Count “wc”.

  • Para solo obtener el resultado de linas usamos “-l”, solo palabras: “-w”, y sólo bits “-c”

  • Todo esto son expresiones regulares

Todo un libro para aprender sobre grep waoo esto es otro nivel

GREP-USOS:

  1. Busca la cadena dada en un solo archivo

El uso básico del comando grep es buscar una cadena específica en el archivo especificado como se muestra a continuación.

Sintaxis: nombre de archivo grep “literal_string”
$ grep “esto” archivo de demostración esta línea es la primera línea en minúsculas de este archivo. Dos líneas por encima de esta línea están vacías. Y esta es la última línea.
2. Comprobación de la cadena dada en varios archivos.

Sintaxis: grep “cadena” FILE_PATTERN

Este también es un uso básico del comando grep. Para este ejemplo, copiemos el archivo de demostración a demo_file1. La salida grep también incluirá el nombre del archivo delante de la línea que coincida con el patrón específico como se muestra a continuación. Cuando el shell de Linux ve el metacarácter, hace la expansión y da todos los archivos como entrada a grep.

$ cp demo_file demo_file1 $ grep “esto” demo_* demo_file: esta línea es la primera línea en minúsculas de este archivo. demo_file: Dos líneas por encima de esta línea están vacías. demo_file: Y esta es la última línea. demo_file1: esta línea es la primera línea en minúsculas de este archivo. demo_file1: Dos líneas por encima de esta línea están vacías. demo_file1: Y esta es la última línea.
3. Búsqueda insensible a mayúsculas y minúsculas usando grep -i

Sintaxis: ARCHIVO “cadena” grep -i

Este también es un uso básico del grep. Esto busca el caso de cadena/patrón dado de forma insensible. Por lo tanto, coincide con todas las palabras como “el”, “EL” y “El” caso de manera insensible, como se muestra a continuación.

$ grep -i “el” archivo demo_file ESTA LÍNEA ES LA PRIMERA LÍNEA EN MAYÚSCULAS DE ESTE ARCHIVO. esta línea es la primera línea en minúsculas de este archivo. Esta línea tiene todo su primer carácter de la palabra en mayúsculas. Y esta es la última línea.
4. Coincidir con la expresión regular en los archivos

Sintaxis: nombre de archivo grep “REGEX”

Esta es una característica muy poderosa, si puedes usar la expresión regular de manera efectiva. En el siguiente ejemplo, busca todo el patrón que comienza con “líneas” y termina con “vacío” con cualquier cosa intermedia. Es decir, Para buscar “líneas[cualquier cosa intermedia] vacía” en el archivo de demostración.

$ grep “lines.*empty” demo_file Dos líneas por encima de esta línea están vacías.
De la documentación de grep: Una expresión regular puede ir seguida por uno de los varios operadores de repetición:

? El elemento anterior es opcional y coincide como máximo una vez.

  • El elemento anterior coincidirá cero o más veces.
  • El elemento anterior coincidirá una o más veces.
    {n} El elemento anterior coincide exactamente con n veces.
    {n,} El elemento anterior coincide n o más veces.
    {,m} El elemento anterior coincide como máximo m veces.
    {n,m} El elemento anterior coincide al menos n veces, pero no más de m veces.
  1. Comprobación de palabras completas, no de subcadenas usando grep -w

Si desea buscar una palabra y evitar que coincida con las subcadenas, use la opción -w. Simplemente hacer una búsqueda normal mostrará todas las líneas.

El siguiente ejemplo es el grep regular donde está buscando “es”. Cuando buscas “es”, sin ninguna opción mostrará “es”, “su”, “esto” y todo lo que tiene la subcadena “es”.

$ grep -i “es” demo_file ESTA LÍNEA ES LA PRIMERA LÍNEA EN MAYÚSCULAS DE ESTE ARCHIVO. esta línea es la primera línea en minúsculas de este archivo. Esta línea tiene todo su primer carácter de la palabra en mayúsculas. Dos líneas por encima de esta línea están vacías. Y esta es la última línea.

El siguiente ejemplo es el grep de WORD, donde solo está buscando la palabra “es”. Tenga en cuenta que esta salida no contiene la línea “Esta línea tiene todo su primer carácter de la palabra en mayúsculas”, a pesar de que “está” está allí en “Esto”, ya que lo siguiente es buscar solo la palabra “es” y no “esto”.

$ grep -iw “es” demo_file ESTA LÍNEA ES LA PRIMERA LÍNEA EN MAYÚSCULAS DE ESTE ARCHIVO. esta línea es la primera línea en minúsculas de este archivo. Dos líneas por encima de esta línea están vacías. Y esta es la última línea.
6. Mostrar líneas antes/después/alrededor de la coincidencia usando grep -A, -B y -C

Al hacer un grep en un archivo enorme, puede ser útil ver algunas líneas después de la coincidencia. Es posible que te sientas útil si grep puede mostrarte no solo las líneas coincidentes, sino también las líneas después/antes/alrededor de la partida.

Cree el siguiente archivo demo_text para este ejemplo.

$ cat demo_text 4. Navegación de palabras Vim Es posible que desee hacer varias navegaciones en relación con las palabras, tales como: * e - ve al final de la palabra actual. * E - ve al final de la PALABRA actual. * b - ve a la palabra anterior (antes). * B - ve a la PALABRA anterior (antes). * w - ve a la siguiente palabra. * W - ve a la siguiente PALABRA. WORD - WORD consiste en una secuencia de caracteres no en blanco, separados con espacios en blanco. palabra - palabra consiste en una secuencia de letras, dígitos y guiones bajos. Ejemplo para mostrar la diferencia entre WORD y word * 192.168.1.1 - PALABRA única * 192.168.1.1 - siete palabras.
6.1 Mostrar N líneas después de la coincidencia
-A es la opción que imprime las N líneas especificadas después de la coincidencia como se muestra a continuación.

Sintaxis: grep -A <N> “cadena” NOMBRE DE ARCHIVO

El siguiente ejemplo imprime la línea coincidente, junto con las 3 líneas después de ella.

$ grep -A 3 -i “ejemplo” demo_text Ejemplo para mostrar la diferencia entre WORD y word * 192.168.1.1 - PALABRA única * 192.168.1.1 - siete palabras.
6.2 Mostrar N líneas antes de la coincidencia
-B es la opción que imprime las N líneas especificadas antes de la coincidencia.

Sintaxis: grep -B <N> “cadena” NOMBRE DE ARCHIVO

Cuando tenías la opción de mostrar las N líneas después de la coincidencia, tienes la opción -B para lo contrario.

$ grep -B 2 “single WORD” demo_text Ejemplo para mostrar la diferencia entre WORD y word * 192.168.1.1 - PALABRA única
6.3 Mostrar N líneas alrededor de la coincidencia
-C es la opción que imprime las N líneas especificadas antes de la coincidencia. En alguna ocasión es posible que desee que el partido aparezca con las líneas de ambos lados. Esta opción muestra N líneas en ambos lados (antes y después) de la coincidencia.

$ grep -C 2 “Ejemplo” demo_text palabra - palabra consiste en una secuencia de letras, dígitos y guiones bajos. Ejemplo para mostrar la diferencia entre WORD y word * 192.168.1.1 - PALABRA única
7. Resaltando la búsqueda usando GREP_OPTIONS

Como grep imprime líneas del archivo por el patrón / cadena que había dado, si quería que resaltara qué parte coincide con la línea, entonces debe seguir la siguiente manera.

Cuando realice la siguiente exportación, obtendrá el resaltado de las búsquedas coincidentes. En el siguiente ejemplo, resaltará todo esto cuando establezca la variable de entorno GREP_OPTIONS como se muestra a continuación.

$ export GREP_OPTIONS=’–color=auto’ GREP_COLOR=‘100;8’ $ grep este archivo de demostraciónesta línea es la primera línea en minúsculas de este archivo. Dos líneas por encima de esta línea están vacías. Y esta es la última línea.
8. Buscando en todos los archivos recursivamente usando grep -r

Cuando desea buscar en todos los archivos bajo el directorio actual y su subdirectorio. La opción -r es la que necesita usar. El siguiente ejemplo buscará la cadena “ramesh” en todos los archivos del directorio actual y en todo su subdirectorio.

$ grep -r “ramesh” *
9. Invertir coincidencia usando grep -v

Tenía diferentes opciones para mostrar las líneas coincidentes, para mostrar las líneas antes de la coincidencia, y para mostrar las líneas después de la coincidencia, y para resaltar la coincidencia. Así que definitivamente también querrías la opción -v para invertir la coincidencia.

Cuando desee mostrar las líneas que no coincidan con la cadena/patrón dado, use la opción -v como se muestra a continuación. Este ejemplo mostrará todas las líneas que no coincidieron con la palabra “ir”.

$ grep -v “go” demo_text 4. Navegación de palabras Vim Es posible que desee hacer varias navegaciones en relación con las palabras, tales como: WORD - WORD consiste en una secuencia de caracteres no en blanco, separados con espacios en blanco. palabra - palabra consiste en una secuencia de letras, dígitos y guiones bajos. Ejemplo para mostrar la diferencia entre WORD y word * 192.168.1.1 - PALABRA única * 192.168.1.1 - siete palabras.
10. muestra las líneas que no coinciden con todo el patrón dado.

Sintaxis: grep -v -e “patrón” -e “patrón”
$ cat test-file.txt adenina vitamina B carbono D $ grep -v -e “a” -e “b” -e “c” test-file.txt D
11. Contando el número de coincidencias usando grep -c

Cuando desee contar cuántas líneas coinciden con el patrón/cadena dado, use la opción -c.

Sintaxis: nombre de archivo grep -c “patrón”
$ grep -c “ir” demo_text 6

Cuando quieras, averigua cuántas líneas coinciden con el patrón

$ grep -c este archivo de demostración 3

Cuando quieras, averigua cuántas líneas no coinciden con el patrón

$ grep -v -c este archivo demo_ 4
12. Muestra solo los nombres de archivo que coincidan con el patrón dado usando grep -l

Si desea que el grep muestre solo los nombres de archivo que coincidan con el patrón dado, use la opción -l (L minúsculas).

Cuando da varios archivos al grep como entrada, muestra los nombres del archivo que contiene el texto que coincide con el patrón, será muy útil cuando intente encontrar algunas notas en toda su estructura de directorios.

$ grep -l esta demostración_* archivo de demostración archivo de demostración1
13. Mostrar solo la cadena coincidente

Por defecto, grep mostrará la línea que coincide con el patrón/cadena dado, pero si desea que el grep muestre solo la cadena coincidente del patrón, use la opción -o.

Puede que no sea tan útil cuando das la cuerda directamente hacia adelante. Pero se vuelve muy útil cuando das un patrón de expresiones regulares y tratas de ver qué coincide como

$ grep -o “is.*line” demo_file es la línea es la primera línea minúscula es línea es la última línea
14. Mostrar la posición de la coincidencia en la línea

Cuando desee que grep muestre la posición en la que coincide con el patrón en el archivo, utilice las siguientes opciones como

Sintaxis: archivo grep -o -b “patrón”
$ cat temp-file.txt 12345 12345 $ grep -o -b “3” temp-file.txt 2:3 8:3

Nota: La salida del comando grep anterior no es la posición en la línea, es el desplazamiento de bytes de todo el archivo.

  1. Mostrar el número de línea mientras se muestra la salida usando grep -n

Para mostrar el número de línea del archivo con la línea coincidente. Hace numeración de línea basada en 1 para cada archivo. Use la opción -n para utilizar esta función.

$ grep -n “go” demo_text 5: * e - ve al final de la palabra actual. 6: * E - ve al final de la PALABRA actual. 7: * b - ve a la palabra anterior (antes). 8: * B - ve a la PALABRA anterior (antes). 9: * w - ve a la siguiente palabra. 10: * W - ve a la siguiente PALABRA.

Les comparto mis apuntes de esta clase

Pequeña corrección jefe:
En torno al minuto 6:00
wc -l movies.csv es para líneas
wc -w movies.csv es para palabras
peeeero
wc -c movies.csv es para CARACTERES (characters), es decir, bytes, no bits.
De todos modos muy buen vídeo, se entiende todo muy bien y lo explicas a buen ritmo!

En wsl es distinto a como dice el docente:
-w: Indica la cantidad de palabras del archivo.
-c: Indica la cantidad de bytes del archivo.
-m: Indica la cantidad de caracteres.

Extra.
Si usas wc -m texto.txt te cuenta el numero de caracteres que tiene tu documento

Grep nos permite encontrar coindidencias de una búsqueda dentro de un archivo de texto.

Por ejemplo: grep Towers movies.csv -> Buscará en el archivo de las películas, todas las coincidencias con la palabra “The”. Hay que tomar en cuenta que grep es case-sensitive, es decir, no es lo mismo “The” que “the”. Podemos hacer que ignore esto con grep the -i movies.csv.

También podemos contar cuántas veces aparece una cadena de texto usando grep -c tower movies.csv.

Incluso podemos traer resultados que NO cumplan con lo que buscamos. Lo hacemos con grep -vi towers movies.csv.

Finalmente, tenemos el comando wc (No, no es para el baño 🚽), significa Word Count y contará las palabras que haya en un archivo con texto. Como arroja 3 números, el primero es para las líneas, el segundo es para los caracteres y el tercero es para el número de bits.

Reto cumplido
Busco los archivos .js de mi HOME y los guardo en un txt

sudo find ./ -type f -name *.js > archivosJS.txt && cowsay "Archivos guardados" | lolcat

Este link me encanta para probar expresiones regulares y garantizar que funcionan bien.
https://regexr.com

El comando grep sirve para buscar una determinada cadena de caracteres en un archivo.
La sintaxis básica del comando grep es:

$ grep cadena_de_caracteres archivo

jajjaja cuando se guardó hice un cat al resultado y era un montón, lyego recordé el head hahahahaha, excelente curso, gracias.

Que agradable sujeto. 🤯😊

genial este programa muy teso Ken Thomson uien en un dia realizo este programa para ayudar a un amigo en su busqueda de palabras de archvios

find ./ -type f -name *.kt > miProperties.txt && echo “exito”

PUEDEN LLAMARME MAJESTAD GREP!

¿Cómo descargar archivos desde Google Drive con WGET?

// Files smaller than 100MB
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME

// Files bigger than 100MB
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=FILEID" -O FILENAME && rm -rf /tmp/cookies.txt

FILEID la obtienes copiando del link.
Suponiendo que lo siguiente es el link: https://drive.google.com/file/d/1UibyVC_C2hoT_XEw15gPEwPW4yFyJFeOEA/view?usp=sharing

Entonces el FILEID será: 1UibyVC_C2hoT_XEw15gPEwPW4yFyJFeOEA

Yo uso una PODERASA herramienta llamada GREPPER
Miren lo que me da como resultado cuando busco lo siguiente:

Renombrar archivos en Linux con el comando mv

 mv nombreviejoarchivo1 nombrenuevoarchivo1

Un pequeño detalle

wc -c movies.csv

Donde el profesor indica que son bits, el resultado que muestra son bytes

Que genial!!!

Comando Función
grep Buscar coincidencias de búsqueda -c contar -i ignorar sensibilidad de texto -v no coincidan
wc contar cuantas palabras hay -l contar lineas -w contar palabras -c numero de bits

Tipos de Grep:

  1. [grep Towers movies.csv] Busca la palabra “Towers” dentro del archivo “movies.csv”.
  2. [grep The movies.csv] Busca la palabra “The” dentro del archivo “movies.csv”, diferenciando mayúsculas de minúsculas.
  3. [grep -c the movies.csv], Cuantas veces aparece la palabra dentro del archivo “movies.csv”.
  4. [grep -v the movies.csv], Cuantas películas sin la palabra dentro del archivo “movies.csv”.
  5. [wc movies-csv], Cuántas palabras hay dentro del archivo "movies.csv"
    4.1) [wc -l movies-csv], Cuántas líneas hay dentro del archivo "movies.csv"
    4.2) [wc -w movies-csv], Cuántas palabras hay dentro del archivo "movies.csv"
    4.2) [wc -c movies-csv], Cuántos bitshay dentro del archivo “movies.csv”

1) [grep Towers movies.csv] Busca la palabra "Towers" dentro del archivo "movies.csv".

**Grep:**Permite encontrar conicidencias de una busqueda dentro de un archivo de texto (o dentro de cualquier texto)

De verdad espero que a partir de este punto se use con mas frecuencia la terminal en los cursos.
Cosas como los preprocesadores de HTML y CSS se pueden usar desde la terminal.

grep: Busca coincidencias en un archivo o directorio.
        [ExpRegular] [archivo]
        -i  --> ignore key sentitive (mayus o minus).
        -c  --> Cuenta las ocurrencias.
        -ci --> De esta forma usar dos filtros.
        -v  --> Busaca las que NO coinciden.
        (ejm: grep -vi Towers > sinTowers.txt).

    wc: Cuenta lineas letras bits (wordCount).
        [nombreArchivo]
        -l --> Cuenta solo líneas.
        -w --> Cuenta solo carácteres.
        -c --> Cuenta solo bits.

Por si te quedaste con la duda, una expresión regular se puede definir como:

💡 una secuencia de caracteres que conformar[an un patrón de búsqueda.

Si quieren conocer y hasta pactar más a fondo sobre este tema les dejo este enlace

Entiendo, entonces, que wc (wordCount) cuenta de todo menos palabras…

Si alguien tiene problemas al intentar ejecutar el grep a la primera y le sale el siguiente mensaje:
" grep: movies.csv: Permission denied “
Intenta cambiar los permisos de la siguiente manera:
” chmod u+r+w+x movies.csv "

Y con eso ya te deja hacer la búsqueda, recuerda quitar las comillas al inicio y al final si les haces copy paste.

Maravillosas las clases del curso. Súper emocionantes y de mucho aprendizaje.

find ./ -name *.txt

Gracias!

Ignore case sensitive con el comando grep

grep es uno de los comandos mas usados porque utiliza expresiones regulares.

uso de greep con el parámetro -i

que hace grep? nos ayuda a buscar coincidencias en un archivo de texto a través de una búsqueda

Manejo de grep

Nos permite encontrar coincidencias de una búsqueda dentro de un archivo de texto

grep Towers movies.csv para encontrar todas las coincidencias (líneas) que tengan las palabras Towers

grep the movies.csv para buscar todas las coincidencias con the pero no considera las que inician con mayúscula The. grep the -i movies.csv para que ignore si es con mayúscula o minúscula

grep -c the movies.csv para contar -c las coincidencias sólo minúsculas, grep -ci the movies.csv minúsculas y mayúsculas

grep -vi towers movies.csv para poder buscar cuales son las que no coinciden con towers sin importar sea mayúsculas o minúsculas

wc movies.csv word count número de líneas, número de letras, número de bits

wc -l movies.csv contará solo las líneas

wc -w movies.csv contará solo las palabras

wc -c movies.csv contará los bits

Grep -c the movies.csv = permite contar cuantas veces aparece The en el archivo movies

Grep -vi towers.csv > vi towers movie.csv > sintowers.txt = enlista I guarda en nu archive todas las pel[icuas que no tengan la palabra towers, por que ser[a ignorada de la orden.

Wc Word coun

Nos sirve para contar las palabras
Indica las l[ineas del archivo, las palabras, y el numero de bits
-l nos da el numero de líneas

-w nos da el numero de palabras

-c nos va a dar el numero de bits


.
Por si a alguien le es útil, yo estaba teniendo un problema con que la terminal me abriera movies.csv e hiciera la búsqueda por la palabra que le solicité. La cosa estaba en que mi archivo se guardó cómo movies(números y letras).csv. Así que la opción para solucionarlo era usar un (*) para que coincidiera con los caracteres que no estaba ubicando y agilizar las cosas. (En la imagen está la solución en caso de que ayude esto a alguien).

OBSERVACION: Con el comando word count

wc -c movies.csv

Da como resultado los bytes, no bits del archivo.
Sino es así, me corrigen por favor 🤔👌

Me puse a curiosear con grep y quise encontrar las películas de Ciencia Ficción que se estrenaron en el año en que nací. Como son dos criterios de búsqueda y sólo deben aparecer las líneas en donde ambas condiciones se cumplan, investigué como hacerlo y hallé dos formas. Una es usando la condición OR a través de los operadores (\ y |):

grep 'Sci-Fi.*,1982,\|,1982,.*Sci-Fi' movies.csv

La otra es pasando la búsqueda recursivamente en dos comandos grep usando el pipe ( | ):

grep  Sci-F movies.csv | grep ,1982,

(Pongo el criterio de búsqueda del año con las comas porque si lo dejo sin las comas incluye otras coincidencias, como el número de la película.).

Excelente clase, gracias

Excelente clase, gracias.

netstat -an | grep ESTABLISHED | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | awk ‘{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print “” }’

Comparto una utilidad con grep que me ha ayudado mucho cuando quiero buscar un comando que ya se utilizo, hago la búsqueda con una frase que contenga el mismo y luego lo puedo ejecutar con su id y colocándole el signo ! al inicio del id del comando (esto ayuda si el comando es muy extenso):

history | grep mkdir

Lista todos los comandos que tengan esa coincidencia:

Ejecutar el comando por su id (ejecutara el comando mkdir sandbox):

!13

😄

En la clase, al usar wc movies.csv dice que entrega el número de:
líneas, caracteres, bits
Pero en realidad entrega el número de:
líneas, palabras, bytes

Fuente: man wc

GREP-OPCIONES:

–i: no diferenciará entre mayúsculas y minúsculas.
–w: fuerza que sólo encuentre palabras concretas.
–v: selecciona las líneas que no coinciden.
–n: muestra el número de la línea con las palabras de solicitadas.
–h: elimina el prefijo del nombre del archivo Unix en la salida.
–r: busca directorios recursivamente.
–R: como -r pero sigue todos los enlaces simbólicos.
–l: muestra sólo nombres de archivos con las líneas seleccionadas.
–c: muestra sólo una cuenta por archivo de las líneas seleccionadas.
–color: muestra los patrones coincidentes en colores.

Definición:

  • Grep es uno de los comandos más útiles que hay en la terminal, además de ser muy potente dentro del ambiente de desarrollo de Linux.

  • Nos permite encontrar coincidencias de una búsqueda dentro de un archivo de texto o en general dentro de cualquier texto, por ejemplo un standard output.

grep {expReg} {file}

  • Buscará todas las coincidencias de lo indicado en el parámetro primer parámetro que de hecho es una expresión regular, dentro del archivo seleccionado.

  • Ejemplo: grep Towers movies.csv

grep -i {expReg} {file}

  • Por defecto las búsquedas con grep son case sensitive si queremos que no sean así añadimos la opción de -i.

  • Ejemplo: grep -i the movies.csv , : grep -i the movies.csv | less

grep -c {expReg} {file}

  • Si queremos contar el número de ocurrencias que hay, añadimos la opción de -c.

  • Ejemplo: grep -c the movies.csv, grep -ci the movies.csv

grep -v {expReg} {file}

  • Encontrar todas las no coincidencias, para esto añadimos la opción de -v.

  • Ejemplo: grep -vi towers movies.csv

find ./ -name "*.txt" | tee reto.txt && echo "you are the best"

asi lo hice 😮 y funciono

grep -ci the movies.csv

Esto muestra el número de líneas que contienen alguna ocurrencia. Si una misma línea contiene 2 veces “the”, la contará una sola vez.
Para contar las veces totales que aparece “the” incluso si hay repeticiones en una misma línea, se puede usar:

grep -oi the movies.csv | wc -l

Lo que hace -o es dar como output SÓLO las coincidencias en vez de la línea entera, y cada coincidencia se pone en una línea diferente. Así, con el pipe, usamos ese output como input del comando wc -l.

En un proyecto muy antiguo de la empresa donde trabajo había la necesidad de cambiar todos los logos de la empresa y el código era muy redundante sobre todos los archivos así que headers y footers de la web se repetían y era dificil saber que archivos ya había revisado y cuales me faltaban

El comando grep me agilizó la tarea con los argumentos -lir

grep -lir “logo.png” /home/web/public_html

La opción i para ignorar el case sensitive
La opción l para buscar en varios archivos
La opción r para hacer una búsqueda recursiva desde el path indicado

Este comando es una navaja suiza para muchas situaciones cotidianas.

grep

  • Comando que nos permite filtrar el contenido de un texto usando expresiones regulares
  • Su sintaxis es grep <flags> <expresion regular> <nombre archivo> o <comando previo> | grep <flags> <expresion regular>
  • Algunos flags de grep:
    • c → count, cuenta las coincidencias
    • i → ignore, ignora mayúsculas y minúsculas
    • v → invierte el resultado (devuelve las no coincidencias)

wc

  • Comando que devuelve las lineas, palabras y bits (en ese orden) de un archivo
  • Su sintaxis es wc <flags> <archivo>
  • Sus principales flags son:
    • l → conteo de líneas del archivo
    • w → conteo de palabras del archivo
    • c → conteo de bits del archivo
    • m → conteo de caracteres del archivo
Pequeño detalle: wc -c muestra bytes, no bits. Anexo algunos ejemplos de uso para word count (wc): wc -l <fichero> número de líneas wc -c <fichero> número de bytes wc -m <fichero> imprime el número de caracteres wc -L <fichero> imprime la longitud de la línea más larga wc -w <fichero> imprime el número de palabras

Grep muy potente para buscar coincidencia en una busqueda en un archivo

Creo que lo que devuelve en realidad es:

  • #de lineas
  • #de palabras
  • #de letras
fui el único que escuchó la voz de freddy en una parte del video? xd

Nota:

grep Towers movies.csv
grep -i the movies.csv
wc -l numero de lineas
wc -w numero de palabras

realmente estoy adorando este curso! thanks profe Devars

Grep

  • Es uno de los comandos más poderosos dentro de la consola
  • Permite realizar búsquedas de texto dentro de archivos
  • Tiene muchas opciones
  • Incluso hay libros enteros dedicados a casos de uso con este comando