Eu tenho um arquivo ( data.dat
) que contém 3 colunas. Eu quero ler em dois deles com o shell script e preencher o conteúdo em um arquivo de modelo.
O arquivo é assim:
12 180 2390
14 177 2210
16 173 2130
...
Até agora, posso fazer isso com uma variável (que é a coluna 2 no arquivo de dados) da seguinte forma:
for a in 'cat data.dat | gawk '{print $2}''; do
sed s/A/$a/ daily.template daily.template > daily.inp
done
Agora eu quero ler na coluna 3 também e dar o valor de acordo (b) da mesma linha que a coluna 2 para o mesmo modelo. O modelo contém variáveis chamadas "A" e "B".
Eu não posso fazer um loop for aninhado como eu não quero iterar cada valor de um sobre cada valor de b.
Como posso conseguir isso?
Adição:
Primeiramente, obrigado por toda sua ajuda!
Sim, pode ser mais fácil de entender se eu der mais informações sobre o arquivo daily.template. Está parecendo semelhante a:
dens_column O3 300.00
dens_column h20 B
sza A
day_of_year 172
output sum
...
A e B devem ser substituídos em todos os ciclos das linhas.
A primeira coluna em data.dat não significa nada, apenas exibe o tempo de uma medição e este parâmetro não é necessário em "daily.inp".
Eu só quero um "daily.inp" para cada linha onde A e B são substituídos com o valor de acordo da coluna 2 e 3 na linha de acordo.
Então, um arquivo daily.inp como:
dens_column O3 300.00
dens_column h20 2390
sza 180
day_of_year 172
output sum
...
Em seguida, o próximo arquivo é separado:
dens_column O3 300.00
dens_column h20 2210
sza 177
day_of_year 172
output sum
...
E assim por diante ...