Uso de Mac Terminal para insertar una línea en un archivo de texto que contiene el nombre del archivo

Uso de Mac Terminal para insertar una línea en un archivo de texto que contiene el nombre del archivo

Estoy usando Terminal en Mac y tengo una serie de archivos de texto, cada uno de los cuales contiene datos como este:

300.50 253.50
301.00 156.26
301.50 191.57

Quiero insertar un encabezado para las columnas donde la primera está etiquetada como 'Longitud de onda' y la segunda está etiquetada con el nombre del archivo para que se vea así (el espaciado no importa siempre que esté delimitado por un espacio):

Wavelength Filename
300.50 253.50
301.00 156.26
301.50 191.57

Tengo un bucle que inserta 'Longitud de onda' en cada archivo y funciona muy bien, pero agregar el nombre del archivo me está causando algunos problemas. Aquí está el código:

for file in *.txt
do
  ed -s $file < <(printf '%s\n' 1i "Wavelength" . wq)   
done

He probado estas líneas con la sección modificada en negrita:

  • -ed -s $archivo < <(printf '%s\n' 1i "Longitud de onda"&& $archivo. wq)
  • -ed -s $archivo < <(printf '%s\n' 1i "Longitud de onda"&& printf $archivo. wq)
  • -ed -s $archivo < <(printf '%s\n' 1i "Longitud de onda"&& eco $archivo. wq)

¿Cómo hago esto? ¿Necesito guardar el nombre del archivo como una variable e imprimir la variable? ¿O puedo usar un modificador para convertir el nombre del archivo en una cadena?

Por favor, avíseme si se le ocurre algo. gracias de antemano

Respuesta1

¿Qué pasa con lo siguiente?

for file in *.txt
do
  ed -s $file < <(printf '%s\n' 1i "Wavelength $file" . wq)
done

Por cierto, ¿qué hacen ".wq" y "1i"? No había visto eso antes...

información relacionada