Showing posts with label script. Show all posts
Showing posts with label script. Show all posts

Tuesday, March 13, 2012

Trabajo con texto / sed básico

sed permite realizar cualquier tipo edición en ficheros de texto mediante el uso de comandos o pequeños programas "sed".
La verdad es que sed es muy potente, pero aquí sólo voy a comentar dos o tres ejemplos básicos, que en muchas ocasiones me han preguntado...

En general sed acepta que la operación se haga sobre el mismo fichero usando la opción "-i" (inplace). Lo más normal (y lo más seguro) es no usar esta opción y simplemente trabajar usando la entrada/salida estándard y pipes o redirecciones. Pero como estos comandos son para gente que no usa demasiado la linea de comandos, tratan de ser lo más sencillos posible y usarán esta opción.


Sustituir en todo el fichero ejemplo.txt, la palabla 'inicial' por la palabra 'final':
sed s/inicial/final/g -i ejemplo.txt

Sustituir sólo la primera ocurrencia de la palabla 'inicial' por la palabra 'final' en fichero.txt:
sed s/inicial/final/ -i ejemplo.txt

Borrar las lineas que contengan la palabra 'ejemplo' del fichero ejemplo.txt:
sed /ejemplo/d -i ejemplo.txt

Borrar las lineas que empiecen por la palabra 'ejemplo' del fichero ejemplo.txt:
sed /^ejemplo/d -i ejemplo.txt


Borrar las lineas que terminen por la palabra 'ejemplo' del fichero ejemplo.txt:
sed /ejemplo$/d -i ejemplo.txt

Borrar las dos primeras lineas del fichero.txt
sed '1,2 d' -i fichero.txt

Borrar la última linea de fichero.txt
sed  '$ d'  -i fichero.txt

Borrar las líneas vacias de fichero.txt
sed  '/^$/ d'  -i fichero.txt

Mostrar las tres primeras lineas de fichero.txt
sed  -n '1,3 p' fichero.txt

Mostrar las lineas 4,5,6 de fichero.txt
sed  -n '4,6 p' fichero.txt

Más info:
man sed
info sed


Tuesday, March 06, 2012

Trabajo con texto / uniq

uniq permite identificar, contar, y omitir lineas repetidas dentro de un fichero que esté ordenado, así que su uso más típico es junto con cat y sort.

Eliminamos líneas duplicadas:
cat file_a | sort | uniq
Contamos líneas duplicadas:
cat file_a | sort | uniq  -c

Si consideramos que tenemos ficheros de texto (file_a y file_b) con registros por líneas, facilmente podemos realizar las siguientes operaciones:

Union de registros de A y B:
cat file_a file_b | sort | uniq > file_c
Intersección de registros de A y B (registros comunes):
cat file_a file_b | sort | uniq -d > file_c
Diferencia de registros de A y B (A - B):
cat file_a file_b file_b | sort | uniq -u > file_c


Más info:
man sort
man uniq
info coreutils

Saturday, April 04, 2009

Ethervendor Soft libre Alea Soluciones

Poco a poco comenzamos a subir contenido a la web Soft libre Alea Soluciones. En esta ocasión voy a comentar el paquete Ethervendor que permite entre otras cosas, consultar los Ethernet Vendors correspondientes a una MAC.

Inicialmente este paquete le pusimos el nombre MacUtils, pero ese nombre de paquete ya existía por lo que se ha renombrado a EtherVendors.

Este paquete de software incluye utilidades para identificar/consultar Ethernet Vendors. Actualmente se dispone de las siguientes utilidades:
  • update-ethervendor Descarga/Actualiza la lista oficial de Ethernet Vendors (desde el IEEE) a nuestro equipo, para que sea usada por el resto de utilidades.
  • ethervendor Muestra el nombre del fabricante (vendor/manufacturer) correspondiente a una tarjeta de red partiendo de su dirección Ethernet Mac.
  • ethervendorsfind Muestra los nombres de fabricantes que contienen una cadena dada.
  • ethervendorids Muestra todos los OUIs/Prefijo Dirección MAC, correspondientes a un nombre de fabricante especificado.

La url oficial es: EtherVendors home
El paquete es muy simplón, pero bastante útil para todos aquellos que trabajamos en entornos ethernet todos los días.
Cualquier sugerencia/comentario al respecto de este será bienvenida...