Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
5 Hrs
9 Min
37 Seg

Práctica: Tratamiento de texto

7/23

Lectura

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.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 716

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Nivel de ingenuidad:Me siento** HACKER**

Si desean guardar el resultado de la sustitución realizada con sed, solo deben hacer lo siguiente:
sed ‘s/NOMBRE_USUARIO/Ana/; s/PUNTOS_USUARIO/35/’ archivo-saludo.txt > archivo-modificado.txt

De esta forma se creara un nuevo archivo llamado archivo-modificado.txt que contendrá los campos sustituidos, sin alterar el archivo original

1. Mi archivo file.txt es una lista de nombres y apellidos separados por “;”

root@myuser:~/Documentos$ cat file.txt
Esteban; Alvarado;
Jennifer; Garita;
Paola; Carrillo;
María; Salazar;
Steven; Carrillo;
Tiffany; Robinson;
José; Alfaro;
David; Alvarado;
Enellia; Vargas;

2. Ejercicios con head y tail

root@myuser:~/Documentos$ head -n 2 file.txt
Esteban; Alvarado;
Jennifer; Garita;

root@myuser:~/Documentos$ tail -n 3 file.txt
José; Alfaro;
David; Alvarado;
Enellia; Vargas;

3. Ejercicios con grep

root@myuser:~/Documentos$ grep 'Esteban' file.txt
Esteban; Alvarado;

root@myuser:~/Documentos$ grep -i 'tiffany' file.txt
Tiffany; Robinson;

root@myuser:~/Documentos$ grep -i 'carrillo;$' file.txt
Paola; Carrillo;
Steven; Carrillo;

root@myuser:~/Documentos$ grep -i '^jennifer' file.txt
Jennifer; Garita;

4. Ejercicios con sed

root@myuser:~/Documentos$ sed 's/Tiffany/Reginaldo/g' file.txt
Esteban; Alvarado;
Jennifer; Garita;
Paola; Carrillo;
María; Salazar;
Steven; Carrillo;
Reginaldo; Robinson;
José; Alfaro;
David; Alvarado;
Enellia; Vargas;
/*Tratamiento de texto*/
touch [nameFIle.extensión]= nos permite crear archivos.

cat => Muestra el contenido de un archivo

head => muestra las primeras lineas de un archivo.
head -n [numero de lineas] => muestra las lineas que se indique desde el comienzo del archivos

tail -n [numero de lineas] => muestra las lineas que se indique desde el final del archivos

grep [dato buscado] [archivo en que se va a buscar] = buscar dentro de archivos
grep -i [dato buscado] [archivo en que se va a buscar] = buscar dentro de archivos(incluyendo mayusculas y minusculas)
grep -i [dato buscado] [archivo en que se va a buscar] = buscar dentro de archivos(incluyendo mayusculas y minusculas)
grep -i ["dato buscado[AllEnd$]"] [archivo en que se va a buscar] = buscar dentro de archivos, todo lo que finalice [AllEnd] "$" (incluyendo mayusculas y minusculas)
grep -i ["^dato buscado[AllEnd]"] [archivo en que se va a buscar] = buscar dentro de archivos, todo lo que tenga al principio [StartAll] "$" (incluyendo mayusculas y minusculas)

sed '[s/[DatosARemplazar]/[nuevoDato]/g]' [archivo en que se va a buscar]=Remplazar un dato en el flujo que se expone en la terminal, nunca en el archivo original
sed '$d' [archivo]=borrar la útima linea de un archivo
https://likegeeks.com/es/sed-de-linux/

Awk -F ['delimitador;'] '{print$1}'= Sirve para tabajar con archivos estructurados ejemplo .csv, este ejemplo trae la primera columna
Awk -F ['delimitador;'] '{print$1}'= Sirve para tabajar con archivos estructurados ejemplo .csv, este ejemplo trae la primera columna
/*Tratamiento de texto*/```

La verdad es el primer curso que me encuentro con el que no me siento a gusto. El profesor explica demasiado rapido y se salta detalles sin explicarlos.

Me da gusto que ya estés en esta clase 😃
Te tengo una sorpresa, pero tendrás que descubrirla por ti mismx, copia y pega la siguiente línea en tu terminal

echo "x0xs hny px0swny 1nc0xíblx, nw tx 01ndys, c0xxmws xn t1" | sed 's/x/e/g; s/y/a/g; s/h/u/g; s/w/o/g; s/0/r/g; s/1/i/g'

Holiii !!! Comparto mi pequeño ejercicio. Descubrí que se puede usar el mismo comando cat > para crear un archivo de texto e ingresar texto directamente, al final se guarda con Crtl + D

almarebolloso@SoDium:~/develop/learning$ mkdir comandosLnx
almarebolloso@SoDium:~/develop/learning$ cd comandosLnx
almarebolloso@SoDium:~/develop/learning/comandosLnx$ cat > archivodeTxt.txt
Hey there ! Hey!
Hey! What's up?! How are you?!
Hello, hello there?!?!
Hi !!! My name is Alma, what's yours?!
k, goodbye dude!
almarebolloso@SoDium:~/develop/learning/comandosLnx$ head -n 2 archivodeTxt.txt
Hey there ! Hey!
Hey! What's up?! How are you?!
almarebolloso@SoDium:~/develop/learning/comandosLnx$ tail -n 3 archivodeTxt.txt
Hello, hello there?!?!
Hi !!! My name is Alma, what's yours?!
k, goodbye dude!
almarebolloso@SoDium:~/develop/learning/comandosLnx$ grep '!$' archivodeTxt.txt
Hey! What's up?! How are you?!
Hello, hello there?!?!
Hi !!! My name is Alma, what's yours?!
k, goodbye dude!
almarebolloso@SoDium:~/develop/learning/comandosLnx$ grep '^H' archivodeTxt.txt
Hey there ! Hey!
Hey! What's up?! How are you?!
Hello, hello there?!?!
Hi !!! My name is Alma, what's yours?!
almarebolloso@SoDium:~/develop/learning/comandosLnx$ sed 's/k/Ok/' archivodeTxt.txt
Hey there ! Hey!
Hey! What's up?! How are you?!
Hello, hello there?!?!
Hi !!! My name is Alma, what's yours?!
Ok, goodbye dude!

Wow, habia aprendido a utilizar la consola de comandos (Todavia ando en nivel basico) y con este post me he dado cuenta que hay comandos mucho mas utilies y con una explicacion mucho mas sencillo que en otros libros y videos que he visto.

El PlatziDay si que me esta ayudando a reforzar y aprender mas cosas <3<3<3

Resumen que permite reforzar conocimiento adquirido de la anterior clase, aclara varias dudas.

Este curso recién lo agregaron para Data Science. Yo ya había dado el de Git por lo que me facilita llevar este porque lo vi antes.

Lo primero que hice fue crear un archivo en excel con datos muy sencillos, Nombre, Apellido, Edad y Peso. Lo guarde como .csv en una carpeta dentro de mi equipo.
Luego mediante la terminal lo copie de la carpeta de Windows a la de development creada en Linux, esto me ayudó a repasar los comandos de cp y a navegar a través de los directorios de ambos SO, para quienes empezamos en esto es una actividad bastante enriquecedora, se los recomiendo.
Por acá les dejo los datos que contiene mi archivo por si a alguien le sirve, me ayudo mucho a comprender mejor cómo funcionan las utilidades de esta lección.
Nombre,Apellido,Edad,Peso
Hector,Diaz,29,74
Eduardo,Campos,30,80
Ariana,Lucena,24,58
Carla,Martinez,20,60
Jaime,Perez,26,70
Reyna,Torres,67,60
Maria,Mendoza,33,66
Susana,Dorantes,40,69
Pedro,Serrno,78,70
Diana,Aguilar,35,70
Oliver,Reynoso,40,80
Jorge,Cruz,28,80
Carlos,Pea,33,60
Jesus,Rivera,34,75
Javier,Buendia,45,80
Gilberto,Romero,47,80
Yadira,Carrillo,29,50
Olga,Santiago,30,68
Frida,Hernandez,6,30
Mateo,Ceja,7,25

Poner todos los comandos, equivocarse, volver a intentarlo hasta ver el resultado esperado, perderle miedo a la terminal

Se entiende mejor en la práctica

silvanarl@DESKTOP-C735VGH:~$ touch reto.txt
silvanarl@DESKTOP-C735VGH:~$ nano reto.txt
silvanarl@DESKTOP-C735VGH:~$ cat reto.txt
¡Hola, NOMBRE_USUARIO! Felicitaciones por completar tu desafío con PUNTOS_USUARIO puntos.
silvanarl@DESKTOP-C735VGH:~$ sed 's/NOMBRE_USUARIO/Silvana/' reto.txt
¡Hola, Silvana! Felicitaciones por completar tu desafío con PUNTOS_USUARIO puntos.
silvanarl@DESKTOP-C735VGH:~$ cat reto.txt
¡Hola, NOMBRE_USUARIO! Felicitaciones por completar tu desafío con PUNTOS_USUARIO puntos.
silvanarl@DESKTOP-C735VGH:~$ sed 's/NOMBRE_USUARIO/Silvana/; s/PUNTOS_USUARIO/100/' reto.txt
¡Hola, Silvana! Felicitaciones por completar tu desafío con 100 puntos.
silvanarl@DESKTOP-C735VGH:~$    

~/files » nano crack.txt

~/files » sed ‘s/<persona>/tu/’ crack.txt
Si estas leyendo esto, tu, eres un crack 😄

^_^

¿En qué caso real me sería de utilidad el comando sed? Ya que por lo que veo solo sirve para mostrar, no edita el archivo realmente. Tengo entendido que crea un nuevo flujo, ¿se puede obtener ese nuevo flujo y guardarlo para así hacer la idea de obtener el archivo modificado?

En mi opinión esta clase basada en lectura fue mas clara que la explicación de el docente 😃

Este curso esta muy bueno hace dos días no sabia nada de lineas de comando, muchas gracias.

Que interesante, no había conocido el uso de sed antes.

Varios comandos espero les sirva:

WOW es increible lo que uno aprende en pocos videos de este curso, de no saber absolutamente nada a tener unos conceptos basicos y poderse mover facilmente con la consola ❤️

Falta explicar que para crear un nuevo archivo con el nuevo flujo modificado (por ejemplo, si modificamos un archivo con el comando SED seguramente lo vamos a querer gaurda, si no es inútil) se debe escribir: > nuevo archivo.txt. Mira este ejemplo:

En la empresa donde trabajo, se dejan a descargar LOGs de algunos servicios, y estos llegan a pesar hasta 2 GB, lo cual es muy tardado de descargar del servidor, pero con los comandos GREP, HEAD, SED, TAIL, me es más facil obtener solo la información que requiero.

Comparto mi ejemplo de prueba, saludos.

Genial me divertí, haciendo la tarea 😄

Muy interesante este manejo con archivos texto, aquí mi ejemplo archivo arcivo-texto.txt (me quedó con el nombre errado, pero bueno funcionan los ejemplos… jejejej"

"""Hola soy Zeneida,
te doy la bienvenida
a este fenomenal curso"""

iMac-de-Andres:zeneida Zeneida$ ls
Arcivo-texto.txt        development             learning
iMac-de-Andres:zeneida Zeneida$ cat arcivo-texto.txt
"""Hola soy Zeneida,
te doy la bienvenida
a este fenomenal curso"""
iMac-de-Andres:zeneida Zeneida$ head -n 2 arcivo-texto.txt
"""Hola soy Zeneida,
te doy la bienvenida
iMac-de-Andres:zeneida Zeneida$ tail -n 1 arcivo-texto.txt
a este fenomenal curso"""
iMac-de-Andres:zeneida Zeneida$ grep "soy" arcivo-texto.txt
"""Hola soy Zeneida,
iMac-de-Andres:zeneida Zeneida$ grep -i "zenEidA" arcivo-texto.txt
"""Hola soy Zeneida,
iMac-de-Andres:zeneida Zeneida$ grep "curso$" arcivo-texto.txt
iMac-de-Andres:zeneida Zeneida$ grep "bienvenida$" arcivo-texto.txt
te doy la bienvenida
iMac-de-Andres:zeneida Zeneida$ grep "^te" arcivo-texto.txt
te doy la bienvenida
iMac-de-Andres:zeneida Zeneida$ sed "s/Zeneida/Marisol/" arcivo-texto.txt
"""Hola soy Marisol,
te doy la bienvenida
a este fenomenal curso"""
iMac-de-Andres:zeneida Zeneida$ 

Bueno me dedique a practicar, así memorizo los comando** Reto Road to Code**



Excelente curso

quien ha sentido que esto es muy duro , pero somos masoquistas para aprender . duele duele

Utilidades batch.
Son programas que procesan texto y emiten el resultado.
Cat => muestra el contenido completo de un archivo.
head => muestra las primeras linas de un archivo
tail => muestra las utlimas lineas del archivo
grep => podemos ver si exite una linea en el achivo -i => para que no haga distincio entre Mayus o minus
sed => Tratamiento de flujos. (stream of data) cambia datos con patrones de seleccion
awk => Tratamiento de texto delimitado.
touch => Nos permite crear archivos.

se siente raro cuanto estas trabajando en linux despues de solo trabajar en windows

En unas clases pasadas subí un texto con los comandos vistos, aquí muestro el resultado de cambiar “parametro” por “argumento”, creo que va mejor.

MacBook-Pro-de-rodrigo:practica_tratamiento_texto rodrigo$ sed 's/parametro/argumento/' archivo.txt
man [argumento] -> manual de comando
man comando

date [argumento] -> fecha sistema
date

echo  -> impresión en pantalla
echo “texto”

history [argumentos]-> historial de comandos
history
history -c -> limpia el historial

!# -> te permite repetir un comando después de usar history
!88 -> ejecuta el comando 88 de history
i99

ls [argumentos]-> listar archivos
ls -> listar archivos
ls -a -> archivos ocultos
ls -all -> ordenados con sus propiedades y ocultos (. archivos virtuales)
ls -l -> ordenaos con sus propiedades y sumando el tamaño de los archivos (lista larga)

drwxrwxrmw -> directorio
-rw-r--r--       ->archivo
-lrwxrwxr-x   ->archivo de enlace

pwd -> ruta del directorio actual

cd [argumento]-> cambiar directorio (change directory)
cd /home
cd ~ te regresa al home
cd - te lleva al último directorio visitado

mkdir [argumento] -> crea directorios (make directory)
mkdir introduccion_linea_comandos

cp [argumentos] -> copiar archivo/directorio (copy directory)
cp archivo/directorio destino
cp texto.txt /cursos/platzi/introduccion_linea_comandos
cp archivo ../text.tx .      - > ../ directorio anterior  . directorio actual

mv [argumentos] -> mover archivo/directorio
mv archivo/directorio destino
mv ../archivo.py .  - > ../ (directorio anterior)  . (directorio actual)

rm [argumento] -> eliminar un archivo
rm archivo.txt

rmdir [argumento] - > borrar un directorio
rmdir introduccion_linea_comandos
rm -r  -> forza el borrado del directorio aunque tenga información
rm -r introduccion_linea_comandos

limpiar terminal
clear o ctrl + l  -> Mac

Dato
Algunos comandos tienen parámetros opcionales y otros son obligatorios Ej:

mkdir [argumento_obligatorio]
ls [argumento_opcional]

. . -> directorio padre
.   -> directorio actual

ls
ls -a -> archivos, incluso ocultos
ls -t  -> ordena por fecha de modificación
ls -x -> ordena elementos primero por nombre y después por extensión
ls -X -> ordena los elementos primero por extensión y luego por nombre
ls -l  -> muestra toda la información : usuario, grupo, permisos, tamaño, fecha y hora de creación
ls -lh -> muestra la misma información que ls -l pero con unidades de tamaño en KB, MB
lr -R  -> muestra el contenido de todos los subdirectorios de forma recursiva
ls -S  -> ordena los resultados por tamaño de archivo

Comandos para cambiar de ubicación
Print Workin Directory: se usa para mostar el directorio actual en el que nos encontramos trabajando.
pwd

cd  -> se utiliza para cambiar de directorio
cd /ruta/ruta
cd /home/mi_usuario

Comandos para mover, copiar o borrar
cp  -> copiar un archivo hacia un directorio
cp [archivo que se va a copiar] [directorio hacia el que se va a mover]

rm  -> eliminar un archivo
rm archivo.txt

mv  -> mover un archivo
mv [ruta del archivo] [directorio hacia el que se va a mover]

rmdir  -> eliminar un directorio
rmdir [ruta / nombre del directorio a eliminar]

Me gusta esto de las líneas de comando, no le había dad o tanta importancia.

También me pasé a linux para ir al 100 con la terminal 😄

Comparto la primera practica, tambié les comparto una web para descargar archivos txt con datos que pueden usar para practicar 😃

https://www.kaggle.com/datasets

juan@ASUS-GL752VW:~$ touch data.txt
juan@ASUS-GL752VW:~$ ls
archivo.txt data.txt development home juan learning nano.save nota.txt test
juan@ASUS-GL752VW:~$ cat data.txt
juan@ASUS-GL752VW:~$ vim data.txt
juan@ASUS-GL752VW:~$ cat data.txt
NOMBRE, ID, PAIS, CURSO
(Carlos, 01, Argentina, Python)
(Andres, 02, Paraguay, Java)
(Teresa, 03, Chile, Kotlin)
(Angela, 04, Colombia, Java)
(Sofia, 05, Colombia, Kotlin)
(Ximena, 06, Peru, C)
(Carolina, 07, Colombia, Java)
(Andrea, 08, Venezuela, Python)
(Alvaro, 09, Panama, Java)
(Erick, 10, Ecuador, Php)
(Dayana, 11, Peru, C#)
(Jose, 12, Uruguay, C)
(Jefer, 13, Argentina, Java)
(Tatiana, 14, Peru, Python)
(Lorena, 15, Chile, Kotlin)
(Bermudez, 16, Argentina, Php)
(Esteban, 17, Colombia, Ruby)
(Sofia, 18, Argentina, Kotlin)
(Marcela, 19, Venezuela, C++)
(Thomas, 20, Brasil, Java)
juan@ASUS-GL752VW:~$ head -3 data.txt
NOMBRE, ID, PAIS, CURSO
(Carlos, 01, Argentina, Python)
(Andres, 02, Paraguay, Java)
juan@ASUS-GL752VW:~$ tail -5 data.txt
(Bermudez, 16, Argentina, Php)
(Esteban, 17, Colombia, Ruby)
(Sofia, 18, Argentina, Kotlin)
(Marcela, 19, Venezuela, C++)
(Thomas, 20, Brasil, Java)
juan@ASUS-GL752VW:~$ grep Java data.txt
(Andres, 02, Paraguay, Java)
(Angela, 04, Colombia, Java)
(Carolina, 07, Colombia, Java)
(Alvaro, 09, Panama, Java)
(Jefer, 13, Argentina, Java)
(Thomas, 20, Brasil, Java)
juan@ASUS-GL752VW:~$ grep -i php data.txt
(Erick, 10, Ecuador, Php)
(Bermudez, 16, Argentina, Php)
juan@ASUS-GL752VW:~$ sed ‘s/Java/HTML/’ data.txt
NOMBRE, ID, PAIS, CURSO
(Carlos, 01, Argentina, Python)
(Andres, 02, Paraguay, HTML)
(Teresa, 03, Chile, Kotlin)
(Angela, 04, Colombia, HTML)
(Sofia, 05, Colombia, Kotlin)
(Ximena, 06, Peru, C)
(Carolina, 07, Colombia, HTML)
(Andrea, 08, Venezuela, Python)
(Alvaro, 09, Panama, HTML)
(Erick, 10, Ecuador, Php)
(Dayana, 11, Peru, C#)
(Jose, 12, Uruguay, C)
(Jefer, 13, Argentina, HTML)
(Tatiana, 14, Peru, Python)
(Lorena, 15, Chile, Kotlin)
(Bermudez, 16, Argentina, Php)
(Esteban, 17, Colombia, Ruby)
(Sofia, 18, Argentina, Kotlin)
(Marcela, 19, Venezuela, C++)
(Thomas, 20, Brasil, HTML)

Queria incluir todos los ejemplos, pero para eso tendria que hacer spam de comentarios xD

Aquí mi aporte
GREP: permite la búsqueda de expresiones regulares, haciendo que coincida con la expresión regular que se utiliza.
Ejemplo: grep -i “hanks$” dumpl.sql

<h3>Parámetros:
• -r: que sea recursivo
• -n: número de línea donde se encuentra la palabra en el archivo
• -e: expresión regular
• -i: no importa si es mayúscula o minúscula
Los Caracteres Regex Básicos Significado
-(.) Cualquier carácter individual
-([ ]) Cualquier carácter especificado
-([^ ]) No el carácter especificado
-(*) Cero o más de los caracteres previos
-(^) Si ^ es el primer carácter en el patrón, entonces el patrón debe estar al principio de la línea que debe coincidir, de lo contrario solo un literal ^.
-($) Si $ es el último carácter en el patrón, entonces el patrón debe estar al final de la línea que debe coincidir, de lo contrario solo un literal $.</h3>

Los Carácteres Regex Extendidos Significado

  • Uno o más de los patrones previos
    ? El patrón anterior es opcional
    { } Especificar las coincidencias mínimas, máximas o exactas del patrón anterior
    | Alternancia - una «o» lógica
    ( ) Permite crear grupos

SED: Screen Editor, tratamiento de flujos de caracteres. Este comando nos permite reemplazar una expresión por otra.
Ejemplo 1: sed ‘s/Hanks/Seleck/g’ dumpl.sql= [Comando][’s’][archivo]
Ejemplo 2: sed ‘$d’ nuevasPelis.csv = [Comando][’$sub-comando’][archivo]
Algunos parámetros:
• s: string
• g: global
• d: delete
• p: print

AWK: tratamiento de texto delimitado, útil para trabajar textos estructurados, separados por (comas (,)) (pipes (|)), (tabs ( )), etc.
Ejemplo 1: awk -F ‘;’ ‘{ print $1}’ nuevasPelis.csv

Algunos parámetros:
• -F: especifica el delimitador (‘;’)
• {}: ejecuta una función
• print: o printf es la función de imprimir
• $1: define el peso ($) de que line se realizará la función, para este ejemplo se imprimirá la columna 1 del archivo nuevasPelis.csv

Ejemplo 2: awk -F"::" ‘{printf("%s\n", $3)}’ movies.dat
• -F: especifica el delimitador (‘::’)
• {}: ejecuta una función
• print: o printf es la función de imprimir
• %s\n: toma el valor literal del string y luego imprime una nueva línea (\n)
• $3: define el peso ($) de que line se realizará la función, para este ejemplo se imprimirá las 3 primeras columnas del archivo movies.dat

Me encantó como la localización del placeholder puede cambiarse por los datos de todo un archivo a otro, se localiza ‘/DATA/’ en el archivo ‘try.txt’ luego se elimina y en el mismo lugar se inserta el contenido del archivo ‘try2.txt’:

terminal:$ cat try.txt 
first
second
DATA
third
fourth

terminal:$ cat try2.txt 
This is a test
This is a second test
This is an another test

terminal:$ sed '/DATA/ {
> r try2.txt
> d}' try.txt
first
second
This is a test
This is a second test
This is an another test
third
fourth```

**~$ cat test.csv **
Este es un ejemplo de usar comandos en la terminal

id; nombre; direccion; precio;
1; carro; usa; 100;
2; moto; mexico; 50;

listo…
**~$ head -n 3 test.csv **
Este es un ejemplo de usar comandos en la terminal

id; nombre; direccion; precio;
**~$ tail -n 3 test.csv **
2; moto; mexico; 50;

listo…
**~$ grep -i ‘Carro;’ test.csv **
1; carro; usa; 100;
**~$ sed -i ‘s/carro/auto/g’ test.csv | cat test.csv **
Este es un ejemplo de usar comandos en la terminal

id; nombre; direccion; precio;
1; auto; usa; 100;
2; moto; mexico; 50;

listo…
**~$ sed -i ‘$d’ test.csv | cat test.csv **
Este es un ejemplo de usar comandos en la terminal

id; nombre; direccion; precio;
1; auto; usa; 100;
2; moto; mexico; 50;

**~$ awk -F ‘;’ ‘{print $1, $2}’ test.csv **
Este es un ejemplo de usar comandos en la terminal

id nombre
1 auto
2 moto

**~$ awk -F ‘;’ ‘{print $1, $2, $4+$4}’ test.csv **
Este es un ejemplo de usar comandos en la terminal 0
0
id nombre 0
1 auto 200
2 moto 100

Si deseas guardar el reemplazo que haga el comando sed, lo puedes guardar en otro archivo, por ejemplo:

cat test.log | sed ‘s/datos/CURSO/g’ | sed ‘$d’ > final.log

Esos comandos hacen cosas increibles.

Listo! ☺

El curso hasta el momento perfecto, tiene muchas ayudas, recomendación ayudarse de los comentarios de los compañeros, dejan buenos apuntos.

Los comandos grep, sed y cat los utilicé bastante en esta clase:

Creé un archivo de texto con el comando touch e implementé los otros tres comandos para la edición y visualización del archivo.

😄 💚

(base) asf@asf-SVF15A17CLB:~/Documents/tmp$ sed 's/NOMBRE_USUARIO/Alejo/; s/PUNTOS_USUARIO/1000/' test_bash.txt
¡Hola, Alejo! Felicitaciones por completar tu desafío con 1000 puntos.
El curso de NOMBRE_CURSO, está siendo OPINION
sed "s/NOMBRE_CURSO/Introducción a la terminal y línea de comandos/; s/OPINION/INCREÍBLE/" bienvenido.txt

Correción del comando, falta un / despues de Ana: sed ‘s/NOMBRE_USUARIO/Ana/’ archivo-saludo.txt

**touch (nombre del archivo)** crea un archivo con el nombre indicado, si este no existe, en caso que el archivo exista modificara la fecha de creación y de acceso del archivo **cat > (nombre del archivo)** con esto conseguiremos crear un archivo si no existe, si existe lo reescribirá, con la información que peguemos en la pantalla de la terminal
[root@localhost villanes]# cat saludo.txt



   Hola NOMBRE_USUARIO, llevas acumulado hasta la fecha de hoy: FECHA, PUNTOS puntos. Felicitaciones
[root@localhost villanes]# sed 's/NOMBRE_USUARIO/INVICTOR/;s/FECHA/5 de Marzo del 2020/;s/PUNTOS/2800/' saludo.txt



   Hola INVICTOR, llevas acumulado hasta la fecha de hoy: 5 de Marzo del 2020, 2800 puntos. Felicitaciones
[root@localhost villanes]#

Definitivamente la terminal es muy poderosa

Wow! Esto se empieza a poner más interesante.

<joseman@DESKTOP-22EGQO2:~$ cat mascota.txt
Hola Petlover!

Gracias por confiarnos a tu engreido. NOMBRE_MASCOTA se portó muy bien durante su DESCRIPCION_SERVICIO y lo recompensamos con unos deliciosos bocadillos de cordero que le encantaron! (puedes comprarlos en el siguiente enlace).

A la fecha tienes NUM_VISITAS_MASCOTA visitas acumuladas, por lo que has desbloqueado los siguientes beneficios gratuitos:

- Baño de avena antialergico.
- Profilaxis dental.
- 2 horas de entrenamiento con nuestro coach de mascotas.

Si quieres programar alguno de estos beneficios, envianos un correo a [email protected] para agendar la hora y fecha, o hazlo tu mismo desde nuestra aplicación movil.

En el archivo adjunto encontrarás tu Factura Electronica y detalle del servicio.

Esperamos ver a NOMBRE_MASCOTA pronto nuevamente.

El equipo PetLovers.



joseman@DESKTOP-22EGQO2:~$ sed 's/NOMBRE_MASCOTA/MANOLO/; s/DESCRIPCION_SERVICIO/Desparacitación trimestral gatuna/; s/NUM_VISITAS_MASCOTA/6/' mascota.txt
Hola Petlover!

Gracias por confiarnos a tu engreido. MANOLO se portó muy bien durante su Desparacitación trimestral gatuna y lo recompensamos con unos deliciosos bocadillos de cordero que le encantaron! (puedes comprarlos en el siguiente enlace).

A la fecha tienes 6 visitas acumuladas, por lo que has desbloqueado los siguientes beneficios gratuitos:

- Baño de avena antialergico.
- Profilaxis dental.
- 2 horas de entrenamiento con nuestro coach de mascotas.

Si quieres programar alguno de estos beneficios, envianos un correo a [email protected] para agendar la hora y fecha, o hazlo tu mismo desde nuestra aplicación movil.

En el archivo adjunto encontrarás tu Factura Electronica y detalle del servicio.

Esperamos ver a MANOLO pronto nuevamente.

El equipo PetLovers.



joseman@DESKTOP-22EGQO2:~$>

Con que asi es como hacen los certificados de platzi?

Esta clase de texto esta mejor explicada que la clase en video anterior. (De verdar ojalá actualicen este curso pues su calidad de enseñansa no es de los “estandares de platzi”)

Hola. Me quedé con dos dudas importantes respecto al uso del comando “sed”.

  1. Si los cambios realizados no se guardan sobre el archivo original, como se guardan los cambios realizados a través de este comando? No he notado que se creara un archivo adicional.

  2. Al usar " sed ‘s/TEXTO_A_CAMBIAR/Texto Nuevo A/’ ", si deseara cambiar dos líneas distintas de texto, podría hacerlo? Existe algún modo? Lo pregunto porque al hacer un cambio y luego el otro, considerando la primera duda que tengo, se habría guardado o asegurado el primer cambio “Texto Nuevo A”?

Intenté hacerlo de un par de maneras pero no resultó y al verificar con “cat” luego del primer cambio ejecutado con “sed”, en efecto, el archivo original seguía intacto.

Ojalá me deje entender.
Gracias por la ayuda.

¿Cómo hago para crear datos dentro de el archivo.txt? ¿o debo escribir algo en el blog de notas?

Esto esta muy divertido. Me encanta el roadtocode esta primera semana.

Quiero compartirles una correción. Ahora que estaba aplicandolos comando de BUSQUEDA me paso algo fuera de lo que Mauro habia explicado. Miren la imagen y dijense que para ejecutar el comando SED.
No use como lo explica en los ejemplos. Sino como esta en la imagen => sed s’/nombre a sustutiur/nombre de reemplazo/g’ archivo.txt
Y funciona.

En las expresiones regulares con el símbolo caret (^) es posible buscar cualquier coincidencia que comience con lo que hay a la derecha de este, mientras que con el símbolo peso ($) se busca cualquier coincidencia que finalice con lo que hay a la izquierda de este

USO DE LOS COMANDOS EN LINUX:

ls- ver archivos, podemos agregar condicionales

  • -a ver archivos ocultos
  • -l ver propiedades de archivos
  • -lh ver propiedades más peso del archivo
  • -S ordenar por tamaño del archivo
  • -x ordenar por fecha
  • -X ordenar por fecha

Tree- ver archivos en cascada (es necesario instalar la paquetería de tree con el comando: (sudo apt-get install tree)
Man- permite ver propiedades de comandos
Catarchivo.txt - visualizar el archivo compelto
Headarchivo.txt - ver las primeras 10 líneas y con -n # ( # = número de líneas ) selecciono el número de líneas que deseo ver
Tailarchivo.txt - ver las últimas 10 líneas del archivo, también aplica -n #
Toucharchivo.txt - crear archivo
Mv- mover archivos con la forma: mv ./archivo.txt ./carpeta_destino/
Cp - copiar archivo, misma estructura que mv: cp ./archivo.txt ./carpeta_destino/
. - me indica que tomara el directorio actual
. . - me indica que tomará el directorio padre
Mkdir- crear directorio
Rm- eliminar archivo
Rmdir- eliminar directorio
Sed- sustituir valores con la forma: sed ‘#s/valor1/valor2/(g - global o w - write) -nombre de archivo opcional-’ archivo.txt

  • Se pueden agregar 2 o más sustituciones a la vez con “;” ejemplo:
    • sed ‘#s/NOMBRE/valor1/ ; s/APELLIDO/valor2/’ archivo.txt
  • Se puede eliminar líneas o rango de lineas, con sed “#d”, ejemplo:
    • Sed ‘2d’ archivo.txt - elimina la línea 2
    • Sed ‘2,$d’ archivo.txt - elimina de la línea 2 al final
    • Sed ‘,5d’ archivo.txt - elimina de la línea 1 a la 5
    • Sed ‘/test/d’ archivo.txt - elimina las líneas que contengan “test”
    • Sed ‘/test_1/,/teste_2/d’ archivo.txt - elimina de línea que contiene “test_1” hasta la línea que contiene “test_2”
    • Sed ‘1i\test line’ archivo.txt - agrega la línea “test line” arriba de la línea 1
    • Sed ‘1a\test line’ archivo.txt - agrega la línea “test line” debajo de la línea 1
    • Sed ‘2c\línea nueva’ archivo.txt - sustituye la línea 3 por “línea nueva”
    • Sed ‘/This is/c línea nueva’ archivo.txt - sustituye las líneas que contengan “This is” por “línea nueva”
    • Sed ‘y/123/456/’ archivo.txt - sustituye los valores 123 por 456, pueden estar en líneas distintas
    • Sed ‘=’ archivo.txt - imprime línea por línea el archivo
    • Sed -n ‘/test/=’ archivo.txt - imprime solo las líneas que tienen la palabra “test”
    • Sed ‘/test/r’ archivo.txt - lee las líneas del archivo.txt que contienen “test”
    • Sed ‘3r archivo_nuevo.txt’ archivo.txt - lee e inserta las líneas de archivo_nuevo.txt en la línea 3 de archivo.txt
    • Sed ‘/test/r archivo_nuevo.txt’ archivo.txt - lee e inserta las líneas de archivo_nuevo.txt en las líneas que contengan “test” de archivo.txt

Vim archivo.txt - crear y editar archivos
Nano archivo.txt - crear y editar archivos
Grep - buscar palabras clave en un archivo, puede ser de 3 tipos:

  • Grep “palabra” archivo.txt - busca la palabra e imprime las líneas donde se encontró
  • Grep “palabra$” archivo.txt - busca si la línea tiene la palabra al final
  • Grep “^palabra” archivo.txt - busca si la línea tiene la palabra al inicio
  • -i - busca indistinto de mayúsculas o minúsculas

Un poco largo, pero practiqué y logré entender 😄

joelsv@DESKTOP-VJEU1V9:~$ ls
PLATZIPROYECTOS  development  learning
joelsv@DESKTOP-VJEU1V9:~$ cd learning
joelsv@DESKTOP-VJEU1V9:~/learning$ touch practica2.txt
joelsv@DESKTOP-VJEU1V9:~/learning$ cat practica2.txt
joelsv@DESKTOP-VJEU1V9:~/learning$ vim practica2.txt
joelsv@DESKTOP-VJEU1V9:~/learning$ cat practica2.txt
Hola!
Este es un archivo de prueba para usar los comandos de la terminal
En este momento estoy editando en Vim, un excelente editor de texto
Voy a enumerar algunos juegos de Nintendo Switch que tengo:
1       Dragon Quest XI
2       Mega Man 11
3       Captain Tsubasa: Rise of the New Champions
4       Super Mario 3D World
5       Hyrule Warriors: Age of Calamity
6       Ring Fit Adventure
7       Mario Kart 8
8       Okami HD
9       Baba is You
10      Monster Hunter Rise
Ahora es momento de terminar la edición de texto
Gracias por leer, ahora es momento de probar nuevos juegos
¡Hola, Joel! Felicidades por completar tu desafío con 100 puntos.
joelsv@DESKTOP-VJEU1V9:~/learning$ head practica2.txt
Hola!
Este es un archivo de prueba para usar los comandos de la terminal
En este momento estoy editando en Vim, un excelente editor de texto
Voy a enumerar algunos juegos de Nintendo Switch que tengo:
1       Dragon Quest XI
2       Mega Man 11
3       Captain Tsubasa: Rise of the New Champions
4       Super Mario 3D World
5       Hyrule Warriors: Age of Calamity
6       Ring Fit Adventure
joelsv@DESKTOP-VJEU1V9:~/learning$ tail -n 5 practica2.txt
9       Baba is You
10      Monster Hunter Rise
Ahora es momento de terminar la edición de texto
Gracias por leer, ahora es momento de probar nuevos juegos
¡Hola, Joel! Felicidades por completar tu desafío con 100 puntos.
joelsv@DESKTOP-VJEU1V9:~/learning$ grep juegos practica2.txt
Voy a enumerar algunos juegos de Nintendo Switch que tengo:
Gracias por leer, ahora es momento de probar nuevos juegos
joelsv@DESKTOP-VJEU1V9:~/learning$ grep -i "calamity$" practica2.txt
5       Hyrule Warriors: Age of Calamity
joelsv@DESKTOP-VJEU1V9:~/learning$ grep "^Este" practica2.txt
Este es un archivo de prueba para usar los comandos de la terminal
joelsv@DESKTOP-VJEU1V9:~/learning$ sed 's/Joel/Orellana/' practica2.txt
Hola!
Este es un archivo de prueba para usar los comandos de la terminal
En este momento estoy editando en Vim, un excelente editor de texto
Voy a enumerar algunos juegos de Nintendo Switch que tengo:
1       Dragon Quest XI
2       Mega Man 11
3       Captain Tsubasa: Rise of the New Champions
4       Super Mario 3D World
5       Hyrule Warriors: Age of Calamity
6       Ring Fit Adventure
7       Mario Kart 8
8       Okami HD
9       Baba is You
10      Monster Hunter Rise
Ahora es momento de terminar la edición de texto
Gracias por leer, ahora es momento de probar nuevos juegos
¡Hola, Orellana! Felicidades por completar tu desafío con 100 puntos.
joelsv@DESKTOP-VJEU1V9:~/learning$ sed 's/Joel/Orellana/; s/100/10/' practica2.txt
Hola!
Este es un archivo de prueba para usar los comandos de la terminal
En este momento estoy editando en Vim, un excelente editor de texto
Voy a enumerar algunos juegos de Nintendo Switch que tengo:
1       Dragon Quest XI
2       Mega Man 11
3       Captain Tsubasa: Rise of the New Champions
4       Super Mario 3D World
5       Hyrule Warriors: Age of Calamity
6       Ring Fit Adventure
7       Mario Kart 8
8       Okami HD
9       Baba is You
10      Monster Hunter Rise
Ahora es momento de terminar la edición de texto
Gracias por leer, ahora es momento de probar nuevos juegos
¡Hola, Orellana! Felicidades por completar tu desafío con 10 puntos.```

Ahora ya estoy entendiendo un poco más de que va la clase (curso). Saludos

Hola, la verdad que este curso si es un poco confuso para los que no tenemos mucha base. Me recomiendan tomar algún otro curso antes de este para entenderlo mejor?

Gracias @Mauro Chojrin !! Era justo lo que le faltaba a la clase anterior!!!

COMANDOS DE TRATAMIENTO DE TEXTO

- Touch: nos permite crear archivos
- Cat: nos permite visualizar todo el contenido de nuestros archivos
- Head -n #líneas: nos permite visualizar todo el contenido de nuestros archivos y le debemos indicar el número de líneas a visualizar. Por defecto traerá las 10 primeras líneas
-  tail -n #líneas: Nos mostrará las últimas líneas de acuerdo al número que le indiquemos. Al igual que head este por defecto traerá las últimas 10.

1. Búsqueda y tratamiento de texto:
	a. El comando "grep" nos permitirá ubicar palabras clave dentro de un archivo de texto. Si nos da igual si son mayúsculas o minúsculas, utilizaremos el comando "grep -i".
	b. El símbolo $ al final de la palabra clave será la señal de que esta palabra clave está al final.
	c. El símbolo ^ al inicio de la palabra clave será la señal de que esta palabra clave se encuentra al inicio de la línea de texto.
	d. El comando sed nos permitirá cambiar los caracteres de determinada palabra por la que deseamos ahora. Ejemplo: sed 's/NOMBRE_USUARIO/Ana/'

Gracias a todos los mensajes anteriores porque colocan los pantallazos de sus aprendizajes. Sin duda son de una gran ayuda para muchos que como yo este curso parece RUSO. jajaja, pero tenemos muchas ganas de querer aprender.
NUNCA DEJES DE APRENDER.

Resumen del capitulo en Notion
https://cutt.ly/ylG7hNm

Hola, he aquí mi ejercicio. Lo realicé con un poema que encontré.
PD: no use awk, me parece que no encontraba un uso específico para el en este ejercicio.


Un dato gente!, cuando escribimos

sed 's/NOMBRE_USUARIO/Ana/g' archivo-saludo.txt

Con la letra “g” al final del conmando, le decimos que remplace todas las apariciones en el archivo. Pero podemos acambiar unicamente la primera aparición usando “1”, la segunda “2”, etc …
Un ejemplo:

Fuente: https://likegeeks.com/es/sed-de-linux/

Por un momento no me funciono el comando sed al solo poner el nombre del usuario y al usarlo completo funciono 10/10

No soy capaz de verle mucha utilidad al comando ‘sed’ pero bueno, parece que ya lo veremos más adelante en el curso global.

Definitivamente practicar hace que se te quede mejor asimilados los comandos

Realizado

pandora@DESKTOP-H0J8FO7:~/learning/javascript$ touch reto.txt
pandora@DESKTOP-H0J8FO7:~/learning/javascript$ nano reto.txt
pandora@DESKTOP-H0J8FO7:~/learning/javascript$
pandora@DESKTOP-H0J8FO7:~/learning/javascript$ cat reto.txt
Hola USUARIO, tu puntuacion para este reto fue de PUNTOS..
pandora@DESKTOP-H0J8FO7:~/learning/javascript$ sed 's/USUARIO/Luciano/ ; s/PUNTOS/100/' reto.txt
Hola Luciano, tu puntuacion para este reto fue de 100..
pandora@DESKTOP-H0J8FO7:~/learning/javascript$```

![]()
¡Ay, lo conseguí!

Reto cumplido!

Reto cumplido, WOW!

Está bueno el link de comandos:
https://likegeeks.com/es/sed-de-linux/.

tails -f log.txt

Es muy útil para ver registros en tiempo real 😄

practicar es lo que nos aporta aun mas al aprendizaje, nuca paren de practicar lo que aprenden 😃

Genial

Tranquilamente podrian armar un curso por comando

muy buena explicación del uso de los comandos y nos complementa con otros ejemplos del uso del comando sed

estoy tan sorprendido , en serio , que existan profesores y personas que explican esto tan desmenuzado que realmente es gratificante aprender .

interesante

gracias en verdad estoy aprendiendo bastante, aunque me ha costado en algunas cosas he logrado las metas. gracias por este platzi por estos cursos, a continuar aprendiendo.

Lindo curso, la verdad.

Un universo lleno de posibilidades.

darksho@DESKTOP-82B9MB2:~/platzi$ sed 's/Nombre_Usuario/Victor/; s/Puntos_Usuario/10000/' consola
!Hola, Victor! Felicidades por completar tu desafío con 10000 puntos.```

Success!