Converting "A B [C] D" formatted file to "A@B@C@D"
I have a file which has contents on every line following this format (A, B, C, and D represent text):

    A B [C] D

E.g.:

    cat Cat [noun] This animal likes to eat mice.

- The first separator is the first space (" ")
- The second separator is a space and a square opening bracket (" [").
- The final separator is a square closing bracket and a space ("] ").

I want to convert all of the content in this file to a @-separated file:

    A@B@C@D

- The original file contains many strange characters in UTF-8.
- There are no spaces or backets within the contents of A and B.
- C sometimes contains spaces, but no brackets inside the two given.
- D contains anything from spaces, square brackets, etc. and the contents should remain unchanged.

How can I convert this file to that format?
Converting "A B [C] D" formatted file to "A@B@C@D"
===

I have a file which has contents on every line following this format (A, B, C, and D represent text):

    A B [C] D

E.g.:

    cat Cat [noun] This animal likes to eat mice.

- The first separator is the first space (" ")
- The second separator is a space and a square opening bracket (" [").
- The final separator is a square closing bracket and a space ("] ").

I want to convert all of the content in this file to a @-separated file:

    A@B@C@D

- The original file contains many strange characters in UTF-8.
- There are no spaces or backets within the contents of A and B.
- C sometimes contains spaces, but no brackets inside the two given.
- D contains anything from spaces, square brackets, etc. and the contents should remain unchanged.

How can I convert this file to that format?