Entendiendo el comando sed II

En el articulo anterior les hice una primera presentación del comando sed. Hoy voy a seguir contandoles cosas acerca de este magnífico editor de textos (Stream Editor).

En principio las funciones aplicadas por sed se aplican a todas las líneas de un fichero. Es posible delimitar dichas acciones a una sola línea, a un rango de líneas, a la última línea, o a las líneas identificadas por una expresión regular:

Si se pone un número o el carácter $ , la función se aplica sobre la línea indicada. El carácter $ representa la última línea del fichero:

  sed -e \$d fichero_prueba #Borra la última línea
sed -e 1d fichero_prueba #Borra la primera línea

Si se ponen dos números, la función se aplicará a las líneas cuyo número esté en el rango establecido:

  sed -e 3-6d  fichero_prueba #Borra desde la línea 3 a la 6 incusive

Si se pone una expresión regular, la función se aplicará sobre las líneas que encajen con la expresión regular (Las expresiones regulares en sed, se fijan entre barras del 7 /

 sed -e /^$/d fichero_datos #Borra líneas vacias

Si se ponen 2 expresiones regulares, éstas definirán parráfos. El primer parráfo comenzará cuando se encuentre la primera expresión regular, y abarcará hasta que se encuentre la segunda expresión regular. Acabado el primer parráfo, el segundo comenzará con la primera línea en que se encuentre la primera expresión regular, y así sucesivamente:

 cat fichero_datos
lunes
martes
miercoles
jueves
viernes
sabado
domingo
sed /n/,/vier/d fichero_datos

El ejemplo anterior tomará como primer párrafo, las líneas de lunes a viernes y como segundo la línea domingo.

Un carácter de exclamación ( ! ), después de establecer el rango de líneas en el que queremos que se aplique la función indicada a sed, hará que ésta se aplique justamente al rango de líneas complementario al que tomaría sin ese carácter:

 sed /^$/\!d fichero_datos  #Borraría todas las líneas NO vacias

Ojo, para sed, el carácter $ significa última línea, pero para las expresiones regulares, el carácter $ significa final de línea.


Deckerix



stumbleupondeliciousredditTechnoratiFacebookTwitter

Entendiendo el comando sed

sed es un editor no interactivo. Es útil si se va a realizar varias veces modificaciones sobre uno o varios ficheros.

Cuando digo que sed es un editor no interactivo me refiero a que los cambios no se realizan sobre el fichero en sí, si no que los cambios aparecen en la salida estandar. Para entender mejor esto, imaginamos que con nuestro editor de textos favorito borramos la línea 3 de un fichero y posteriormente borramos la línea 15 actual. Habremos borrado las líneas 3 y 16 del fichero origen. Esto se podría haber evitado habiendo borrado primero la 16 y luego la 3.

Con sed, la numeración de las líneas no cambia al borrar una, ya que estas se numeran inicialmente. Podríamos haber resuelto el problema anterior de la siguiente manera:

 sed -e '3d' -e '15d' fichero_datos

sed aplica todos los comandos de edición a cada línea de texto de un fichero. Empieza aplicando todos los comandos a la primera línea, luego todos a la segunda, y así sucesivamente.

 sed -f fichero
Toma los comandos de edición del fichero que sigue al flag -f
 sed -e comando
Ejecuta el comando
 sed -e comando -e comando
Ejecuta los comandos indicados
 sed -f ficheroDeComandos ficheroDatos1 ficherosDatos2
Ejecuta los comandos que se encuentran guardados en el fichero
ficheroDeComandos sobre los ficheros
ficheroDatos1, ficheroDatos2, etc...

Si no se nombran los ficheros, sed filtra la entrada estándar. Si se nombran los ficheros, sed manda a la salida estándar el resultado de aplicar los comandos sobre las líneas de dichos ficheros.


deckerix


stumbleupondeliciousredditTechnoratiFacebookTwitter

20 Modings inolvidables

hey ps diggiando un poco encontre este articulo, muy cool, en mi mencio honorifica esta este case bien cool de una choper, que como dice el dude del post ojala viniera con la modelito:




Fuck turbonet, Fuck Telgua !!!! [Actualizada]

Bueno eh aqui otro de mis problemas, la empresa por exelecia de internet aqui es telgua en su divicion de turbonet, (que oh sorpresa es del señor dueño de hellmex) bueno el probla es este mi mania geek no deja de moverse ni un segundo por eso mismo estoy empesando a arruinar routers y cosas asi XD ya probe con un router telefonica y pues la verdad no ay ningun problema fue bastante sencillo, ahora, en turbonet el problema es que a la hora de adquirir tu equipo, no tenes acceso a la clave de admin de tu router, esto quiere desir que no podes programarlo a tu gusto, y para procesar un cambio de clave pues tenes que llamar a servicio al cliente, esperar que te contesten, hacer el pedido y esperar aproximadamente 2 dias para que se pueda cambiar tu clave wireless, esta bajo la politica de la empresa no darle la clave de acceso a NADIE, que mierdas, la excusa tonta del operador que me atendio es que la gente aveces toca las claves de estos y que ps al final no se recuerdan de ellas y llaman a servico al cliente (y como se aburrieron de atender a la gente ps desidieron ya no proporcionar claves de acceso) y que ya no se pueden arreglar despues, pero segun algunos conosidos estos routers ya vienen configurados de fabrica con la programacion de telgua, asi que con un simple reseteo del router todo se arregla, asi que desidi googlear un poco y ps la comunidad geek de guatemala ya proveo las claves mas comunes utilizadas por estos pelmasos:

-------------------------------
User Password
-------------------------------
admin ---------- admin
root ------------ root
admin ---------- !T3lgu@
root ------------ !T3lgu@
Administrator -- !T3lgu@
-------------------------------


**********************

los nuevos routers ahora tienen como pass default:

C1@r0 y c1@r0

**********************


3nj0y!!!