file1
é o modelo e file2
o csv. O que acontece se duas linhas tiverem a mesma localização, for indefinida, a solução abaixo sobrescreve o arquivo de localização com os dados mais recentes. Também não está claro para mim se o diretório /san00
é o único usado na parte de localização e se é suposto ser um caminho absoluto.
Solução de criação de locais em relação ao diretório atual (observe o .
em .$dir
e .$location
).
while IFS=, read scriptname jobname date location updated env; do
dir=$(dirname $location)
[ -d .$dir ] || mkdir -p ".$dir"
sed -e "s/scriptname/$scriptname/" \
-e "s/jobname/$jobname/" file1 > ".$location"
done < <(tail -n +2 file2)
Solução com caminhos absolutos na localização, os diretórios de destino devem pré-existir
while IFS=, read scriptname jobname date location updated env; do
sed -e "s/scriptname/$scriptname/" \
-e "s/jobname/$jobname/" file1 > "$location"
done < <(tail -n +2 file2)
Existem muitas maneiras de extrair as informações de file2
, o acima é apenas uma delas e, dependendo da natureza dos dados, pode ser mais complicado do que isso.