es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede redirigir la salida greped de la utilidad de memoria libre a un archivo.

No puedo redirigir la salida filtrada del comando free -m a un archivo. El archivo está vacío. El comando sí produce salida en pantalla. Además, al quitar el comando grep que se utiliza como filtro, ¡funciona! A continuación se muestra la sesión:

$ free -s 5 -m|grep Mem #Produce salida en pantalla
Mem:           7745         279        5645           0        1820        7185
Mem:           7745         279        5645           0        1820        7185
^C
$ free -s 5 -m|grep Mem >& mem.log
^C
$ cat mem.log #El archivo está vacío
$ ls -l mem.log #Confirmar que el archivo está vacío
-rw-rw-r-- 1 ubuntu ubuntu 0 Dec 10 23:59 mem.log
$ free -s 5 -m >& mem.log #Eliminando el grep y volviendo a intentarlo
^C
$ cat mem.log #Ahora el archivo contiene los datos
              total        used        free      shared  buff/cache   available
Mem:           7745         278        5645           0        1821        7186
Swap:             0           0           0

¿Alguna idea de qué está sucediendo? ¿Es esto un error?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en el uso de “>&” para redirigir la salida a un archivo. Esto probablemente está causando que el comando no envíe correctamente la salida al archivo. En su lugar, intenta usar “>” para redirigir la salida a un archivo:

    $ free -s 5 -m | grep Mem > mem.log
    

    Esto debería redirigir correctamente la salida del comando al archivo “mem.log”. No es un error ni del comando “free” ni del comando “grep”.

Comments are closed.