remove newline inside double quotes

to remove a only one new line inside a double quote

echo -e 'a b\nc "d\ne" f\ng h' | sed -r '/"*[^"]/ n; N; s/("*[^"])\n/\1 /'

to remove multiple new lines inside a double quote

echo -e 'a b\nc "d\ne" f\ng "h\ni" j' | sed -r ':l /"*[^"]/ n; N; s/("*[^"])\n/\1 /;tl'

Leave a comment