Você tem export worker01="sdg sdh sdi sdj sdk"
e, em seguida, substitui =
por um espaço para obter export worker01 "sdg sdh sdi sdj sdk"
. Os campos separados por espaço são export
, worker01
, "sdg
, sdh
, etc.
Provavelmente é melhor dividir em =
e remover as aspas, apenas com o shell:
$ while IFS== read -r key val ; do
val=${val%\"}; val=${val#\"}; key=${key#export };
echo "$key = $val";
done < vars
worker01 = sdg sdh sdi sdj sdk
worker02 = sdg sdh sdi sdj sdm
worker03 = sdg sdh sdi sdj sdf
key
contém o nome da variável, val
o valor. É claro que isso não analisa realmente a entrada, apenas remove as aspas duplas se elas estiverem lá.