[eside-ghost] Borrar determinadas filas con SED

Alvaro Uría fermat en movimage.com
Mar Oct 10 20:34:34 CEST 2006


Aupa Julen,

julen torrontegi [10/10/06 17:42 +0200] escribió:
> El script que borra las lineas según el contenido de un archivo.

Imagino que en el fichero "/root/aborrar" tendrás líneas como la de
"/root/passwd", o así.

Si este fichero no es muy grande, podemos cargarlo en memoria, con la
ayuda de un poco de Perl O:-)

$ perl -e '
@a=<>;	# carga "aborrar" en un array (cada línea es un elemento)
map chomp, @a; # borrar el último "\n" de cada elemento (línea)
$a="(".join("|", en a).")"; # crea (elem1|elem2|...) que nos servirá como
			 # expresión regular más adelante
open(F,"</etc/passwd");  # abrimos el otro fichero: "passwd"
while(<F>){/$a/ or print} # aquí utilizamos la expresión regular:
			# si coincide, NO lo sacamos por pantalla (que
			# es lo mismo que "borrar" la linea :-)
close(F);' aborrar > passwd2 # cerramos descriptor y copiamos el
			# resultado

La sintaxis en consola de Perl es algo así:

$ perl -e '' fichero > fichero2

-e '' hace que se evalúe lo que hay entre '', siendo "fichero" el de
entrada, y el otro el de salida.

Por si quieres hacer copy/paste:

perl -e '@a=<>;map
chomp, en a;$a="(".join("|", en a).")";open(F,"</etc/passwd");while(<F>){/$a/
or print}close(F);' aborrar

> Cualquier ayuda me vendrá bien..

En Shell tb se puede hacer esto mismo, ya que SED lo permite, pero es
que hay que escapar cada parentesis y movidas así... más rollo O:-)

Si necesitas cualquier cosa... :-P

> Eskerrik asko guztioi.

Suerte,
-- 
    ,____________,
    .'          '.
   /~~~~^~~~^~^~~~\
  /      _    /||  \  Alvaro Uría (0x5109E791)
 ;      ( }   \||D  ;  <fermat at movimage.com>
 |    | /\__,=[_]   |  
 ;  ( |_\_  |---|   ;  It might look like I'm doing nothing, but
  \  )|  |/ |   |  /    at the cellular level I'm really quite busy.
   '. |  /_ |   |.'                     
    '------------'
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : no disponible
Tipo       : application/pgp-signature
Tamaño     : 189 bytes
Descripción: Digital signature
Url        : https://listas.deusto.es/mailman/private/eside-ghost/attachments/20061010/feda5abf/attachment.bin


Más información sobre la lista de distribución eside-ghost