Sort the Textbooks
School is starting soon (if it hasn't already) and so it's time to get our textbooks in order. You need to sort your books in alphabetical order but that takes too long so you decide to write a program to do it.
Examples
Input:
_
| | _
|F| | |
|o|_|P|
|o|B|P|
| |a|C|
| |r|G|
|_|_|_|
Output:
_
| |_
|F| |
_|o|P|
|B|o|P|
|a| |C|
|r| |G|
|_|_|_|
Input
The input will be a set of books which need to rearranged alphabetically. It will contain only: |
, _
, , and
A-Za-z
. The titles of the books are read vertically, top-bottom.
You may choose to assume the input is padded with whitespace to fit a rectangle. If you choose to have your input padded with whitespace, please specify this in your answer.
The very maximum book height your program will need to handle is 5,120 lines tall without failing.
The books will always be 1-thick and their will always be at least one book in the input
Output
The output will need to be the same set of books organized in alphabetical order. The height of the books must stay the same and the title must have the same spacing from the top when re-arranged.
Books should be sorted alphabetically. If your language sports a sort function you can use that. Otherwise you can use alphabetical sorting as described here.
Book Title Examples
_
| |
| |
|F|
|o|
|o|
| |
| |
|B|
|a|
|r|
| |
| |
|_|
This books title is:
"Foo Bar"
Book titles will only contain letters and spaces.
Trailing whitespace is allowed
Winning
This is code-golf so shortest code in bytes wins.