
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...