Usando o Terminal Mac para inserir uma linha em um arquivo de texto que contém o nome do arquivo

Usando o Terminal Mac para inserir uma linha em um arquivo de texto que contém o nome do arquivo

Estou usando o Terminal no Mac e tenho uma série de arquivos de texto, cada um contendo dados como este:

300.50 253.50
301.00 156.26
301.50 191.57

Quero inserir um cabeçalho para as colunas onde o primeiro é rotulado como 'Comprimento de onda' e o segundo é rotulado com o nome do arquivo para que fique assim (o espaçamento não importa, desde que seja delineado por um espaço):

Wavelength Filename
300.50 253.50
301.00 156.26
301.50 191.57

Eu tenho um loop que insere 'Comprimento de onda' em cada arquivo e funciona perfeitamente, mas adicionar o nome do arquivo está me causando alguns problemas. Aqui está o código:

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

Eu tentei estas linhas com a seção alterada em negrito:

  • -ed -s $arquivo < <(printf '%s\n' 1i "Comprimento de onda"&& $arquivo. qq)
  • -ed -s $arquivo < <(printf '%s\n' 1i "Comprimento de onda"&& printf $arquivo. qq)
  • -ed -s $arquivo < <(printf '%s\n' 1i "Comprimento de onda"&& echo $arquivo. qq)

Como eu faço isso? Preciso salvar o nome do arquivo como uma variável e imprimir a variável? Ou posso usar um modificador para converter o nome do arquivo em uma string?

Por favor, deixe-me saber se você puder pensar em alguma coisa. Agradeço antecipadamente

Responder1

E quanto ao seguinte:

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

aliás, o que ". wq" e "1i" fazem? Eu não vi isso antes...

informação relacionada