modificación de registros comando sed
DESCRIPTION
Comando sed - Linux - Modificacion de registrosTRANSCRIPT
![Page 1: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/1.jpg)
PROF. PABLO MACÓNPABLOMACON@GMAIL .COM
HT TP: / /SO I I - I TS .BLOGSPOT.COM
MODIFICACIÓN DE REGISTROSCOMANDO SED
![Page 2: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/2.jpg)
DE LAS CLASES PASADAS
Usos de grep:• grep localiza en la entrada estándar un patrón de búsqueda y muestra en la salida estándar solo la o las líneas en las que se encontró el patrón
grep “usuario” /etc/passwd
![Page 3: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/3.jpg)
DE LAS CLASES PASADAS
Usos de grep:• Para comprobar que el artículo ingresado no esté repetido• tengo que usar variables y para utilizar el valor de las variables en grep tengo que tener cuidado de usar comillas dobles “”
![Page 4: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/4.jpg)
DE LAS CLASES PASADAS
Usos de grep:•Con la opción -v nosotros hacíamos lo contrario, mostramos las líneas en las que no se encuentra el patrón, lo podíamos usar para eliminar filas o un producto
![Page 5: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/5.jpg)
DE LAS CLASES PASADAS
Usos de grep:• Pero tenemos que recordar que grep no modifica los archivos de origen, solo muestra. Eso quiere decir que si yo quiero modificar el archivo original tengo que aplicar un algoritmo: ¿cuál?
![Page 6: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/6.jpg)
DE LAS CLASES PASADAS
Usos de grep:1.Re-direccionar la salida a un
auxiliar2.Eliminar el archivo original y
cambiar el nombre al auxiliar (o con mv todo en una sola entrada)
![Page 7: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/7.jpg)
DE LAS CLASES PASADAS
Usos de cut:•Con este comando hacíamos el corte vertical, es decir, tomamos texto con columnas de stdin y mostramos una sola columna en stdout•O varias columnas si usamos -f1,2 ó -f1-3
![Page 8: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/8.jpg)
DE LAS CLASES PASADAS
Usos de cut:• Entonces teníamos que darle el delimitador que usamos y el número de columna• También podemos usar tuberías, recuerden:
ls -l |cut -f4 -d:
![Page 9: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/9.jpg)
COMANDO SED
![Page 10: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/10.jpg)
MODIFICACIÓN
En una base de datos (y en el proyecto) podemos hacer tres cosas con los datos guardados:• Ingresar un nuevo dato (Alta)•Borrar un dato guardado (Baja)•Cambiar un dato guardado (Modificación)
![Page 11: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/11.jpg)
MODIFICACIÓN
Ya vimos ingresar datos• con read le pedimos al usuario que ingrese un dato• Lo guardamos en una variable•Redireccionamos con echo >> tabla
![Page 12: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/12.jpg)
MODIFICACIÓN
Ya vimos borrar datos•con read le pedimos al usuario que ingrese un dato a borrar•Lo guardamos en una variable•Usamos grep -v “$variable” tabla
![Page 13: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/13.jpg)
MODIFICACIÓN
Para modificar vamos a usar sed•Este comando es un editor de líneas, es decir que el tratamiento (como grep) es a las líneas. Cuando le pedimos modificar algo, modifica toda la línea
![Page 14: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/14.jpg)
MODIFICACIÓN
Para modificar vamos a usar sed•Sintaxis:sed [opciones] [patrón] archivo
sed acepta expresiones regulares igual que grep
![Page 15: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/15.jpg)
MODIFICACIÓN
Usos de sed•Borrar una línea (dándole el número de línea)
sed “##d” archivoBorra la línea ## del archivo y muestra en pantalla
![Page 16: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/16.jpg)
MODIFICACIÓN
Usos de sed•Vamos a borrar nuestro usuario de /etc/passwd• Primero contamos en qué línea estamos
cat -n /etc/passwd | grep “usuario”
![Page 17: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/17.jpg)
MODIFICACIÓN
Usos de sed•Vamos a borrar nuestro usuario de /etc/passwd
•Ahora que ya sabemos nuestra línea:sed “##d” /etc/passwd
![Page 18: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/18.jpg)
MODIFICACIÓN
Usos de sed• Lo que acabamos de hacer fue modificar el archivo /etc/passwd y borrar nuestro usuario
• ¿es eso cierto?
![Page 19: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/19.jpg)
MODIFICACIÓN
Usos de sed•No, lo que hicimos fue mostrar en pantalla una versión modificada del archivo, pero el original sigue estando igual que siempre ¿cómo guardamos los cambios?
![Page 20: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/20.jpg)
MODIFICACIÓN
Usos de sed•Con el mismo algoritmo que ya utilizamos para modificar un archivo, es decir re-direccionar la salida a un archivo • Pero como no somos administradores etc/passwd no puede ser cambiado
![Page 21: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/21.jpg)
MODIFICACIÓN
Usos de sed• Esa fue otra forma de borrar, pero lo interesante de sed es que podemos modificar una línea, no solo borrarla
sed “s/patrón_busq/nuevo_patron/” file
![Page 22: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/22.jpg)
MODIFICACIÓN
Usos de sedsed “s/usuario/nuevo/” /etc/passwd
De este modo yo modifico la primera ocurrencia de usuario, solamente la primera
![Page 23: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/23.jpg)
MODIFICACIÓN
Usos de sedPara modificar todas tengo que poner al final del patrón la opción “g”sed “s/usuario/nuevo/g” /etc/passwd
![Page 24: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/24.jpg)
MODIFICACIÓN
Usos de sed•Acá tenemos que tener en cuenta las comillas como hablamos antes, si queremos interactuar con el usuario debemos usar el valor de las variables y para eso debemos usar “ ” no ‘ ’
![Page 25: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/25.jpg)
MODIFICACIÓN
Ejercicio:¿Cuáles serían los pasos para modificar un artículo en una tabla con el siguiente formato:ID:MARCA:MODELO:PRECIO(el ID no se puede cambiar)?
![Page 26: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/26.jpg)
MODIFICACIÓN
Ejercicio:•Pedir al usuario el número de artículo•Verificar que el artículo exista•Guardar datos originales en variables (cut)•Pedir al usuario nuevos datos (guardarlos en variables)
![Page 27: Modificación de registros comando sed](https://reader035.vdocuments.pub/reader035/viewer/2022062708/5588fa0dd8b42a10688b4712/html5/thumbnails/27.jpg)
MODIFICACIÓN
Ejercicio:•Utilizar sed “s/$orig/$nuevos” tabla•Redireccionar eso a un archivo auxiliar•Usar mv auxiliar original (ojo no pide confirmación de borrado)