sed eliminar una o varias lineas de un fichero 3031 knkhr8

3
Sed – Eliminar una o varias líneas de un fichero Junio 2014 Eliminar una o varias líneas de un fichero Sintaxis sed '{[/]<n>|<cadena>|<regex>[/]}d' <nombre_ fichero> sed '{[/]<direccion1>[,<direccion2>][/]d' <nombre_fichero /.../ = delimitadores n = el número de línea cadena = la cadena contenida en la línea regex = expresión regular correspondiente a la ocurrencia buscada direccion = la dirección de una línea (número u ocurrencia) d = delete (borrar) Ejemplos Eliminación de la 3ra línea sed '3d' mi_fichero.txt Eliminación de la línea conteniendo la cadena "awk" sed '/awk/d' mi_fichero.txt Eliminación de la última línea sed '$d' mi_fichero.txt Eliminación de todas las líneas vacías

Upload: hector-daniel-barrios-sanchez

Post on 26-Dec-2015

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sed Eliminar Una o Varias Lineas de Un Fichero 3031 Knkhr8

Sed – Eliminar una o varias líneas de unficheroJunio 2014

Eliminar una o varias líneas de un fichero

Sintaxis

sed '{[/]<n>|<cadena>|<regex>[/]}d' <nombre_ fichero>sed '{[/]<direccion1>[,<direccion2>][/]d' <nombre_fichero

/.../ = delimitadoresn = el número de líneacadena = la cadena contenida en la línearegex = expresión regular correspondiente a la ocurrencia buscadadireccion = la dirección de una línea (número u ocurrencia)d = delete (borrar)

Ejemplos

Eliminación de la 3ra línea

sed '3d' mi_fichero.txt

Eliminación de la línea conteniendo la cadena "awk"

sed '/awk/d' mi_fichero.txt

Eliminación de la última línea

sed '$d' mi_fichero.txt

Eliminación de todas las líneas vacías

Page 2: Sed Eliminar Una o Varias Lineas de Un Fichero 3031 Knkhr8

sed '/^$/d' mi_fichero.txtsed '/./!d' mi_fichero.txt

Eliminación de la línea conteniendo una expresión regular (aquí se elimina la línea conteniendocaracteres numéricos (al menos 1 cifra) situados al final de la línea)

sed '/[0-9/][0-9]*$/d' mi_fichero.txt

Eliminación del intervalo comprendido entre las líneas 7 y 9

sed '7,9d' mi_fichero.txt

Lo mismo pero esta vez la dirección es reemplazada por una ocurrencia

sed '/-Inicio/,/-Fin/d' mi_fichero.txt

Nota

Los ejemplos precedentes únicamente modifican la visualización del archivo (salida estándar 1= la pantalla). Para realizar modificaciones permanentes, en las antiguas versiones (<4) utilizarun fichero temporal, para GNU sed utilizar el parámetro "-i[sufijo]" (--in-place[=sufijo]), como enel ejemplo siguiente:

sed -i".bak" '3d' mi_fichero.txt

No mostrará el resultado en la salida estándar, y modificará el fichero original "mi_fichero.txt"eliminando la 3ra línea y creará un fichero de respaldo llamado "mi_fichero.txt.bak"

---------------------------------------------------Fichero a ser utilizado en los ejemplos (mi_fichero.txt):

Page 3: Sed Eliminar Una o Varias Lineas de Un Fichero 3031 Knkhr8

IntroducciónEste es un ejemplo de fichero para familiarizarse con el filtro “sed”.

Presentación

-Inicio-Sed es un editor de flujo (Stream EDitor), derivado del editor de texto “ed”, muy utilizadoen los sistemas Unix.-Fin-

Uso

El comando más utilizado del filtro “sed” es sin dudas el comando de sustitución (s), quepermite reemplazar en cada línea la primera ocurrencia de una cadena1 por una cadena2.Para una sustitución de todas las ocurrencias (encontradas) en cada línea hay que utilizarel parámetro “g” (global).

Conclusión

El filtro “sed” es sin dudas uno de los comandos más utilizados en asociación con otroscomandos como “grep” o "awk" para la escritura de scripts shell.El conocimiento y el dominio de expresiones regulares es un plus.

-------------------Editado el 05/01/2007A las 17:00 por JP

Este documento intitulado « Sed – Eliminar una o varias líneas de un fichero » de Kioskea (es.kioskea.net) estapuesto a diposición bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por lalicencia, siempre que esta nota sea visible.