Guarde la salida de la línea de comandos en un archivo sin gráficos ni caracteres especiales

Quiero guardar los datos de salida de la línea de comandos en un archivo de texto. Estoy ejecutando macOS High Sierra 10.13.6. El problema es que tiene una salida gráfica que no quiero almacenar. Lo que necesito es solo las cadenas y sus valores correspondientes. ¿Usted me podría ayudar por favor?

El comando de shell que estoy ejecutando es:

pwmetrics http://www.cnn.com --runs=1

Y la salida que se muestra en la Terminal es:

ingrese la descripción de la imagen aquí

Esta herramienta para generar métricas de rendimiento de páginas web es de código abierto. Aquí está el error que recibo mientras trato de guardar mi código:

el error

Y el o.txtarchivo no contiene nada.

Los comandos de shell que he probado hasta ahora son:

pwmetrics http://www.ieee.org --runs=2 &> /Users/ssr/Desktop/o.txt
pwmetrics http://www.ieee.org 2>/dev/null | tee /Users/ssr/Desktop/o.txt
pwmetrics http://www.ieee.org yes>/dev/null | tee /Users/ssr/Desktop/o.txt
Gran pregunta. Dado que es de código abierto, hay formas fáciles de descubrir que estas son secuencias de escape ANSI y bastantes opciones para anularlas. Espero que mi respuesta te dé alguna dirección o ideas para probar. Especialmente el rápido set term dumby volver a ejecutar el comando una vez.

Respuestas (1)

Tienes varias opciones con esa herramienta.

  1. Salida JSON y analizar eso
  2. Sube a Hojas de cálculo de Google y exporta como CSV el texto que necesitas
  3. Use una herramienta para quitar los códigos de escape ANSI que embellecen (en opinión de algunos) y colorear el texto: un paquete para quitar ANSI es https://github.com/chalk/strip-ansi
  4. Use otras herramientas para eliminarlos canalizando la salida o guardándola en un archivo: https://unix.stackexchange.com/questions/4527/program-that-passes-stdin-to-stdout-with-color-codes- despojado o https://superuser.com/questions/380772/removing-ansi-color-codes-from-text-stream
  5. Intentando configurar su tipo de terminal en TERM = tonto (como No se puede trazar con gnuplot en mi Mac )
  6. bifurcando ese proyecto y cambiando el código para que los valores de escape ANSI no sean nada. (Líneas 4-8 aquí https://github.com/paulirish/pwmetrics/blob/master/lib/utils/messages.ts o quizás unas líneas más abajo donde se usan esas variables para construir la salida)

También le diría al programa que escriba su archivo de salida para que obtenga una vista más clara sin necesidad de depurar el manejo de archivos y las canalizaciones en bash (suponiendo que esa no sea su fuerza aquí hoy).

¡Muchas gracias @bmike, fue una explicación útil!