Streams / Flujos de datos

Stdin la entrada estándar por defecto espera una entrada por teclado, en caso de que especifiquemos un archivo la entrada sera el archivo indicado.

$ grep [0-9] numeros.txt

1
2
5
6

$ grep [0-9]

Si no indicamos un archivo esperara una entrad por teclado como si fuera un input en un while, el proceso terminará cuando pulsemos:

  • ctrl + d = Finalizar el proceso.
  • ctrl + c = Matar el proceso.

Cambiar comportamiento:

Entrada:
  • Argumentos.
  • < NOMBRE_FICHERO
Salida:
  • > NOMBRE_FICHERO : Crea fichero con la salida, sobreescribe el fichero.
  • >> NOMBRE_FICHERO : Añade a un fichero la salida.
Errores:
  • 2> NOMBRE_FICHERO : Redirige a un fichero la salida.
  • 2>&1 NOMBRE_FICHERO : Redirige a la salida estándar.

Ejemplos.

Entradas:
$ tr [a-z] [A-Z] < NOMBRE_ARCHIVO

AAA
BBB
CCC

Modifica el archivo que indiquemos y lo muestra por pantalla.

Salidas:
$ sort NOMBRE_ARCHIVO > FICHERO_CON_SORT
$ cat FICHERO_CON_SORT

Antonio
Carlos
Francisco
Willy

Nos ha ordenado un fichero existente y guardado el contenido en un archivo nuevo. Sobreescribe el archivo.

Si lo que queremos en añadir ...

$ sort NOMBRE_ARCHIVO > FICHERO_CON_SORT
$ cat FICHERO_CON_SORT

Antonio
Carlos
Francisco
Willy
Antonio
Carlos
Francisco
Willy
Errores:

Para redirigir la salida de errores.

Si queremos por ejemplo mostrar el error por pantalla y almacenar el resultado en un archivo:

$ ls . /noexiste > ls.txt

ls: cannot access /noexiste: No such file or directory

$cat ls.txt

.:
Archivo.txt
OtroArchivo.txt
ls.txt

Para redirigir los errore hacia un archivo ...

$ ls . /noexiste > ls.txt 2> ls.txt.errores
$cat ls.txt.errores

ls: cannot access /noexiste: No such file or directory

$cat ls.txt

.:
Archivo.txt
OtroArchivo.txt
ls.txt

Tendremos un archivo con los erroresls.txt.errores y otrols.txtcon el resultado correcto.

Para unir todo en un fichero, tenemos que redirigir la salida de errores hcai la salida estandar. recordar la salida estándar es 1 y la salida de errores es 2.

$ ls . /noexiste > ls.txt 2>&1
$cat ls.txt

ls: cannot access /noexiste: No such file or directory
.:
Archivo.txt
OtroArchivo.txt
ls.txt

results matching ""

    No results matching ""