Say I have a bunch of (markdown) text with each sentence on a separate line (for easier version control in case of typos). Example file.txt
:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Dictum sit amet justo donec enim diam vulputate.
Nunc faucibus a pellentesque sit amet.
Quis enim lobortis scelerisque fermentum dui faucibus in.
Leo duis ut diam quam nulla porttitor massa id neque.
Vitae tortor condimentum lacinia quis vel eros.
How can I convert turn each paragraph into a single line so that it looks like:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dictum sit amet justo donec enim diam vulputate. Nunc faucibus a pellentesque sit amet.
Quis enim lobortis scelerisque fermentum dui faucibus in. Leo duis ut diam quam nulla porttitor massa id neque. Vitae tortor condimentum lacinia quis vel eros. Velit euismod in pellentesque massa placerat duis ultricies lacus.
My idea is to find and replace the newline \n
character between a fullstop .
and any non-whitespace character \S
. I've figured out how to do it in regex101 here but was wondering if there's a shorter tr/sed/awk equivalent I can use in my bash shell. Something like cat file.txt | ???