Archive for the 'shell scripting' Category

 

trucos molones : extraer un fragmento de texto

Feb 17, 2010 in bash, linux, scripting, shell scripting

Cuántas vezces hemos tenido que buscar un fragmento en un fichero de texto desde el texto ‘tal’ hasta el texto ‘cual’. Con lo sencillo que es con linux y awk !!!!

Lo bueno que tiene linux es que cada día te sorprendes más y cada día eres consciente de lo poco que conoces, es como perderse por una megápolis.

Por ejemplo para sacar todos los usuarios desde el 100 al 111. Tomamos el 100 como march de origen y 111 como match de final y el contenido es lo seleccionado. Se podrías usar por ejemplo “<?php y ?>” o “<body>” y “</body>”

cat /etc/passwd | awk '/100/,/111/ { print } '
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:105::/var/spool/exim4:/bin/false
statd:x:102:65534::/var/lib/nfs:/bin/false
messagebus:x:103:108::/var/run/dbus:/bin/false
avahi-autoipd:x:104:109:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:105:110:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
gdm:x:106:113:Gnome Display Manager:/var/lib/gdm:/bin/false
haldaemon:x:107:115:Hardware abstraction layer,,,:/var/run/hal:/bin/false
hplip:x:108:7:HPLIP system user,,,:/var/run/hplip:/bin/false
polkituser:x:109:120:PolicyKit,,,:/var/run/PolicyKit:/bin/false
festival:x:110:29::/home/festival:/bin/false
mysql:x:111:121:MySQL Server,,,:/var/lib/mysql:/bin/false

sed: cannot rename .//sedDtwt6w: Invalid cross-device link

Dec 23, 2009 in Cosas de la vida, bash, linux, marujadas, scripting, shell scripting

Error curioso al hacer un

sed -i 's/foofoo/blabla/g' *conf

Me lanza ester error, no me realiza el cambio y se para en el primer fichero que encuentra con *conf

sed: cannot rename .//sedDtwt6w: Invalid cross-device link

Este error aparece por que el sistema de ficheros es distinto al que estamos lanzando el sed. En mi caso los ficheros son enlaces simbólicos a ficheros de otro punto de montaje.

búsquedas y reemplazo

Jan 29, 2007 in Notas rápidas, shell scripting

Estoy escribiendo un documento en el que te detallo como instalar una aplicación con librerías de perl en Debian. Me interesa obtener de mi fichero tmp todos los nombres de librerias que tienen el formato libxxxx-perl y quiero obtener los nombres de paquetes. He usado este comando:

grep "lib.*perl" tmp  | sed 's/.*\(lib.*[^ ]perl\).*/\1/'

Bash shell

Jul 03, 2006 in bash, shell scripting

Ejemplos del for :

for (( i=0 ; i<6 ; i++ )) ;do echo $i ; done ;

resultado:

1
2
3
4
5
6