Sacar texto entre dos strings/palabras con sed

Sed nos permite de forma muy sencilla sacar de un fichero de texto el contenido entre dos palabras o strings, ambas inclusive. Por supuesto nos podemos aprovechar del uso de expresiones regulares y todo lo que sed permite para crear búsquedas más complejas.

La sintaxis es la siguiente. La “,” es un operador de rangos:

$ sed -n ‘/INICIO/,/FIN/p’ fichero

Nota: utilizamos el parámetro -n para evitar visualizar las líneas que coinciden con el patrón duplicadas

Por ejemplo, con el contenido siguiente en sed.txt:

     If no -e, --expression, -f, or --file option is given, then
       the first non-option argument is taken as the sed script to
       interpret.  All remaining  arguments  are  names  of  input
       files;  if  no input files are specified, then the standard
       input is read.

       GNU  sed  home  page:   .
       General  help using GNU software: .  E-mail bug reports to: .  Be
       sure  to  include  the word ``sed'' somewhere in the ``Sub‐
       ject:'' field.

Sacamos lo que hay entre las líneas que contienen GNU y field:

$ sed -n '/GNU/,/field/p' sed.txt 
       GNU  sed  home  page:   .
       General  help using GNU software: .  E-mail bug reports to: .  Be
       sure  to  include  the word ``sed'' somewhere in the ``Sub‐
       ject:'' field.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *