sed

Nov 06 13:27

Sustituir un bloque de un archivo por un texto

#!/bin/sh
 
sed -i.bak -n -e '1,/### BEGIN AUTOMAGIC KERNELS LIST/ p' \
       -e '/### BEGIN AUTOMAGIC KERNELS LIST/ a\
Una lí­nea \
otra línea \
\
¿Una entrada del kernel?' \
       -e '/### END DEBIAN AUTOMAGIC KERNELS LIST/,$ p' menu.lst
 
### Explicación de parámetros ###
## -i.bak
# Hace que se sustituya en el mismo archivo (menu.lst), pero guardando una copia
# del original con la extensión que se le pase a -i .
Nov 04 11:30

Borrar la linea número N de un fichero con 'sed'

Aquellos que uséis ssh a diario con máquinas virtuales y demás, conoceréis el incordio que es arreglar esto: "Offending key in /home/usuario/.ssh/known_hosts:60" Normalmente yo abría con un "vi /home/usuario/.ssh/known_hosts +60" pulsaba dos veces la tecla 'd' y ':x', pero esto se hacía pesado, así que empecé a hacerlo con 'sed'. Y aquí tenéis dos ejemplos sencillos, uno para imprimir la linea N y otro para borrarla respectivamente:
sed -n '60p' /home/usuario/.ssh/known_hosts
sed -i '60d' /home/usuario/.ssh/known_hosts
Lenguaje: 
bash
Oct 09 03:32

Borrar una línea específica con sed

# borrar la línea 18 del archivo '~/.ssh/known_hosts'
sed -i '18 d' ~/.ssh/known_hosts
 
# o también 
sed -i 18d ~/.ssh/known_hosts
 
# borrar algunas líneas:
# borrar 6 líneas a partir de la línea 8
sed -i 8,+6d file.txt 
 
 
# borrar la línea donde se encuentre el texto 'TO DELETE'
sed -i '/TO DELETE/ d' file.txt