script

Nov 07 09:13

Imprimir una columna de una linea filtrandola por su contenido con awk

Como me he decidido a guardar toda sentencia sed/awk que vaya usando y me lleve más de 5mins resolverla para tenerlo a mano a posteriori, aquí pongo otro snippet que imprimirá; una columna de una linea filtrandola por su contenido con una condición.
# esto imprimirá solo las columnas que contengan "root"
 
$ awk '{for (i=1;i<=NF;i++)  if ( $i ~ "root" ) print $i}' /proc/cmdline
 
# Se le podrían poner condiciones más complejas, por ejemplo, usando regex.
Lenguaje: 
bash
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
Oct 09 05:24

Diferencias entre listas

Carlos Pérez me preguntó el otro día por alguna utilidad para ver las diferencias entre dos archivos, pero sin tener en cuenta si las líneas estaban ordenadas y demás.

La idea era que de dos listados de cosas quería sacar los elementos que estaban en la primera lista, pero no en la segunda. Concretamente eran listados de paquetes instalados.[1]