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

0

Estou usando o Terminal no Mac e tenho uma série de arquivos de texto que contêm dados como este:

300.50 253.50
301.00 156.26
301.50 191.57

Eu quero inserir um cabeçalho para as colunas onde o primeiro é rotulado como 'Wavelength' 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 'Wavelength' em cada arquivo, e funciona lindamente, 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 . wq)
  • -ed -s $ arquivo < < (printf '% s \ n' 1i "Comprimento de onda" & &; printf $ file . wq)
  • -ed -s $ arquivo < < (printf '% s \ n' 1i "Comprimento de onda" & & echo $ file . wq)

Como 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ê consegue pensar em alguma coisa. Obrigado antecipadamente

    
por stitchineer 24.08.2017 / 22:57

1 resposta

0

E o seguinte:

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

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

    
por 25.08.2017 / 00:05