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