Não há realmente dois tipos de novas linhas; \n é apenas uma sequência de caracteres até que você a passe para printf '%b' ou algum outro comando, como echo -e , que a interpreta como uma sequência de escape de barra invertida.
Portanto, você pode usar printf '%b' para converter qualquer \n de sequências para novas linhas, depois remover todas as novas linhas usando a substituição de parâmetros e uma bash Cadeia de caracteres :
v='ab\n cd
ef
'
printf -v w '%b' "$v"; printf '%s\n' "${w//$'\n'}"
ab cd ef