Se bem entendi, você deseja aplicar as seguintes transformações:
- Se a linha não contiver
=, não faça nada - Se a linha contiver um único
=, exclua tudo depois do= - Se a linha contiver vários
=, execute a etapa anterior repetidamente até que não haja nenhuma, imprimindo os resultados intermediários em cada etapa
Aqui está uma maneira de fazer isso:
#!/usr/bin/env bash
while read line; do
if [[ "$line" == *=* ]]; then
while [[ "$line" == *=* ]]; do
line=${line%=*}
echo $line=
done
else
echo $line
fi
done
Se você salvar isso em um arquivo script.sh , poderá usá-lo assim:
./script.sh < input.txt
Isso produzirá a saída que você fez em sua pergunta.