How can I remove a line-feed/newline BEFORE a pattern using sed
awk, sed
Solution
Sure,
sed 'N;s/\n{/{/'
Or a more thorough version:
sed ':r;$!{N;br};s/\n{/{/g'
Here, `:r` sets a label that we can refer to in order to create a loop;
`$!{...}` executes the given set of commands for every line except the last one;
`N;br` are two commands the get executed in the loop: `N` appends a new line to the pattern space, and `br` branches back to the label `r`, completing the loop.
Then you have all of your file in pattern space when you run the final command:
s/\n{/{/g
You can see the difference between the two approaches if you try it on something like
Anytext
{
{
{
Problem
The title already states it: I want to use some linux one liner (e.g. sed) to transform ``` Anytext { ``` into ``` Anytext{ ``` Can this be done using sed or if not with sed then with an awk one liner ?