If you are losing your LF characters I am going on the assumption this is a file generated by a Windows system and it has been brought over and modified/manipulated in a Unix based system. I have run in to this issue between these two platforms as Windows reads a new line as CRLF and Unix only looks for the CR, as you indicated above.
I have had success in automating file move/manipulation processes between the two platforms, and with this CRLF issue specifically, using a perl script that adds the LF on at the end of every line. The conversion can go both ways, and a good write up on how to leverage perl to do this (as well as other methods to solve this exact problem) is located here: https://kb.iu.edu/d/acux
Specifically, you can download a perl install from www.perl.org (it's free) and then run the following code, calling out that this script should run in perl specifically:
perl -p -e 's/\n/\r\n/' < unixfile.txt > winfile.txt
In the context of a Windows system, I create a .bat file with the above code, create a windows task to automate the .bat, and set the appropriate "Start In" directory to be where the file conversions are going to take place. According to the code above, I would read in any file called unixfile.txt, add in the CRLF characters to every line that contains a CR, and spit out a new file called winfile.txt which is properly formatted with CRLF on each line.
If you are struggling with this still or if you are having trouble with any part of what I suggested feel free to let me know. I have done a few file conversions where I am the Windows system receiving the Unix file and I've had success automating the conversion and delivering the file, so I hope you find this helpful!