[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