miércoles, 15 de febrero de 2012

Sed

Sed
El editor sed es un editor en línea que lee uno o más archivos de texto o cadenas de entrada mediante pipes, los cuales pueden ser editados de acuerdo a los comandos (scripts) que sean introducidos.
El resultado será escrito en la salida estándar, esto quiere decir que al dar la instrucción de editar algún archivo, este no será modificado, simplemente sed enviará como cadena de salida el texto de este archivo con las modificaciones indicadas en el script.
Si quisieramos escribir la salida en un archivo tendríamos que utilizar el direccionamiento > para que la salida estándar sea escrita en el archivo que le indiquemos.

El  funcionamiento de Sed es de la siguiente manera:
  • Lectura de una línea desde el flujo de entrada (las líneas están delimitada por un carácter de salto de línea)
  • La línea es procesada en función de los comandos leídos
  • Muestra (o no) del resultado en la salida estándar (pantalla)
  • Continúa con la línea siguiente.
Los comandos aceptan números de líneas, rangos, o expresiones regulares (RE) para seleccionar la o las líneas sobre las que deben operar.


Caracteres especiales de sed

 A continuación una breve lista de los caracteres especiales que se usan en sed
  • # indica comentario
  • d borra lo indicado
  • p imprime en la linea de salida 
  • / separador de patron de expresión regular
  • * indica cero o más repeticiones
  • . un caracter cualquiera
  • ^ Inicio de linea
  • $ fin de linea
  • [^] lista negada  
  • H Anexar una nueva línea al contenido.
  • g Sustituir una nueva línea.
Ejemplos
 
 A continuación algunos ejemplos de como usar sed

  1. Para borrar comentarios
    #!/bin/sh
    
    sed '
    
        /begin/,/end/ !{
    
             s/#.*//
    
             s/[ ^I]*$//
    
             /^$/ d
    
             p
    
        }
    
    ' 
  2. Borrar lineas vacias en un archivo:

sed /^$/d data.txt  > prueba31.txt


     3. Borrar datos de una sola linea
 sed '3 s/[ins3]*//' <data.txt >que.txt


     4.- Borras lineas después de cierto número
#!/bin/sh
sed '
     1! {; H; g; }
     1,5 !s/[^\n]*\n//
     $p
     h' 

Archivos que se utilizaron para probar la línea dos y tres

datos, Modificado

Tarjetas de referencias

Información introductoria sobre  sed,
Manual


 

No hay comentarios:

Publicar un comentario