Imprima separadamente. echo
é bom o suficiente para ter uma opção ( -n
) que faz pular a nova linha final:
for year in years:
do
for month in months:
do
echo -n "$year|$month|"
calc_statistics | cut -f1,2,34 -d'|' >> results.txt
done
done
Como alternativa, transmita-os para calc_statistics
e imprima-os também (em seguida, ajuste a chamada cut
apropriadamente). Seu exemplo é um pouco estranho, já que $month
e $year
não são usados.
EDITAR:
Ah, nesse caso, você poderia usar paste
, mas é muito mais simples fazer isso com aplicativos de edição de texto. No meu caso sed
:
for year in years:
do
for month in months:
do
calc_statistics | cut -f1,2,34 -d'|' | sed "2,$ s/^/$year|$month|/" >> results.txt
done
done
O que ele faz é ler cada linha após a primeira ( 2,$
significa o intervalo de linhas) e substitui o início da linha ( ^
) pelos valores desejados. Tudo antes de salvar a string no arquivo de resultados.