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.