La verdad es que más que un tutorial, parece un manual en toda regla. Empecé a escribirlo con la intención de no olvidar las cosas de sed cada vez que me paso un cierto tiempo sin usarlo (de ahí el nombre del archivo), pero me fue gustando redactarlo y le he ido ampliando más y más.
Alguno pensará que es absurdo hacer un manual de sed, cuando existen muchos en internet. Y sí, es verdad que existen, pero todos se reducen a enseñar un sed muy básico, tal como:
sed '/borra_esto/d' fichereo.txt
y no van mucho más allá. Por ejemplo, alguno que esté familiarizado con esos usos de sed, ¿sabría cómo extraer los destinatarios de una cabecera de correo? Recuerdo que si hay varios destinatarios es muy probable que se encuentren repartidos en distintas líneas, sólo la primera de las cuales presenta el campo 'To:'. Así que no basta con hacer:
sed '/^$/Q;/^To: /!d' fichero
que es a lo que se suelen reducir la mayoría de los tutoriales. Y aún con todo, esto es relativamente sencillo.
Yo en cambio he procurado profundizar mucho, de modo qué se conozca exactamente cómo actúa sed y cuáles son las estrategias que se deben seguir para resolver problemas más complicados... Porque se pueden resolver problemas más complicados:
El tutorial es largo. En caracteres tiene... ¿créeis que voy a usar 'wc -c'? Pues no, eso es de niñas ;-)
sef -f wcc.sed ~/Documentacion/TrucosConSed.txt
42622
Que forman un total en palabras de... ¿wc -w? Por favor, por favor, que estáis hablando con un auténtico hombre:
sed -f wcw.sed ~/Documentacion/TrucosConSed.txt
6540
Como soy un poco repetitivo, he dicho las palabras órden u ordenes:
sed -f wcexp.sed ~/Documentacion/TrucosConSed.txt
41
En fin, no son cosas muy, muy útiles pero dan una idea de las capacidades "ocultas" de sed, que a fin de cuentas es un simple editor de flujo que se dedica a hacer sustituciones de texto. Nada más, pero nada menos.
Por último, si ahora (para probaros) preguntase cuánto suman los 42622 caracteres del texto, más sus 6540 palabras, más las 41 veces que he repetido órden/es, más las doce horas que me ha podido llevar escribirlo, os podría catalogar en:
gárrulo: suma usando lápiz y papel.
aprendiz: suma usando xcalc (o la calculadora de windows ¡arghhh!).
aprendiz hortera: suma usando excell.
listillo: suma usando bc:
echo "42622+6540+41+12" | bc
49215
friqui: suma con sed, porque los auténticos friquis sumamos con sed:
echo "42622+6540+41+12" | sed -f sumame.sed
49215
Juro que no está amañado... Se me ha ocurrido un algoritmo para sumar con sed. Hasta me he quedado sorprendido de que se pueda hacer con simples busca y reemplaza (sed no tiene variables, ni operaciones aritméticas, ni todas esas cosas que tienen los lenguajes de programación). Aún tengo que buscar por internet a ver si alguien lo habia hecho antes. Supongo que sí: hay muchísima gente en este mundo como un auténtico cencerro...
Bueno, pues todo está en el tutorial. Y bastantes cosas más como trasponer matrices, por ejemplo.
¡Que aproveche! Si es que le aprovecha a alguno. Si me mandáis alguna corrección mejor que mejor.
PD: Creo que le debo a bpeople desde hace dos meses las correcciones de mi tutorial de vim... ¡ejem! no me he olvidado, pero me da una pereza... Cuando lo quieras mándame una bronca en privado y lo haré. A mí, como no se me hable a palos...
Bueno, pues me es imposible adjuntar el fichero: no sé por qué narices no me deja. Dentro de un rato edito y pruebo a ver.