Filtros




Filtros (Unix)

	  En unix, se puede comunicar procesos por medio de "tubos"
	(pipes) que unen la salida de un comando con la entrada de
	otro; ( El simbolo del tubo es "|" )
	El uso de varios comandos (que a su salida dan lo que
	se le indique a su entrada con modificaciones) unidos de esa
	forma puede generar nuevas funciones.
	Asi si usamos el comando grep para buscar numeros de matricula
	en un fichero, y el resultado se lo pasamos a un sort y el
	resultado del sort a un more, tendremos "virtualmente" un nuevo
	comando que nos presenta ordenadamente y pantalla a pantalla las
	matriculas que haya en un fichero.
	Estos "comandos compuestos" pueden ser almacenados en fichero
	de comandos.
	Los mensajes de error van a la salida estandar de errores.
	( en unix 'shell-script', en dos 'procesamiento por lotes')


	    Ejemplo : comando treer
		      ( es un fichero shell-script )

	  #!/bin/sh
	  #
	  # Imprime un arbol desde el directorio actual/dado
	  #
	  DIR=.
	  if [ X$1 != X ] ; then
	     DIR=$1
	  fi

	  echo $DIR; find $DIR -type d -print | tr / \\1 | sort -f | tr \\1 / |\
	  sed -e s,\^$DIR,, -e /\^$/d -e "s,[^/]*/\\([^/]*\\)\$, \`-----\\1," \
	   -e "s,[^/]*/, |     ,g"
	  #/*

        # ... | grep <palabra> | ...

          * Su salida son lineas que continen alguna <palabra>

        # ... | sort <opcion> | ...

	  * Su salida son las lineas que hay a su entrada ordenas
	    segun opcion :
	       '-n' --- en orden numerico
	       '-r' --- invierte el efecto de la opcion

        # ... | tee <fichero> | ...

	  * Pasa a la salida su entrada y ademas, la almacenara en
              <fichero>

        # ... | tr <a-z> <A-Z> | ...

	  * Su entrada es transforma segun sus parametros
	    Los parametros forman como una tabla y el se encarga
	    de traducir segun ella :

		    hola   ->| a - A |->   HOLA
			       b - B
				...

        # ... | sed <opcion> | ...

	  * El editor de 'flujo'. Manda a su salida la entrada modificada
            segun lo comandos de <opciones> que pertenecen tambien al
	    editor 'ed'.
	  * Ejemplo :

		 cat Manu | sed 's/UNIX/UNIX(tm)/' > newManu

	    sustituira las cadenas 'UNIX' por 'UNIX(tm)'