Substituindo ^ e | símbolos em uma matriz

Tenho a seguinte tabela:

column1  column2
1        aaa^bbb
2        aaa^bbb|ccc^ddd

Gostaria de ter um arquivo de saída da seguinte forma:

column1   column2     column3
1         aaa         bbb
2         aaa         bbb
3         ccc         ddd

Você se importa em me informar se existe uma maneira inteligente de fazer isso?

Atualizar

Eu estava tentando fazer duas coisas;

For ^, desejo separar o contexto da coluna 2 e da coluna 3.

Para |, quero separá-lo para a próxima linha, mas mantendo o mesmo número na coluna1 (a coluna1 é a mesma para as linhas 2 e 3. Desculpe por cometer um erro aqui.

Para reescrever, a entrada é a seguinte:

column1  column2 
x        aaa^bbb 
y        aaa^bbb|ccc^ddd 

Output é o seguinte:

column1   column2     column3 
x         aaa         bbb 
y         aaa         bbb 
y         ccc         ddd 

questionAnswers(1)

yourAnswerToTheQuestion