При использовании команды:
tr -s '\n' ' '< test1
где test1 является текстовым файлом.
Если test1 записан способом, таким образом, что он содержит новые строки (символы перевода строки) и не \n (обратная-косая-черта-n) затем, ответ появляется как ожидалось, который является всеми новыми строками, заменяются одиночным пробелом.
Но если говорят, что test1 отформатирован таким образом, что он содержит \n (обратная-косая-черта-n) и не новая строка, затем выполняющая команду, \n не становится замененным одиночным пробелом, Например, если test1 содержит
hello \n\n\n how are \n\n you
затем вывод
hello \n\n\n how are \n\n you
и нет
hello how are you
Так состоит в том вопрос, как каждый заменяет литеральной обратной-косой-чертой-n's?
Если так, это не может быть сделано с TR, так как TR только работает над отдельными символами. Вот то, как сделать это в sed (представьте редактора в виде строки):
$ cat test1
hello \n\n\n how are \n\n you
$ sed -e 's/\\n/ /g' < test1
hello how are you
отмечают, что дополнительная обратная косая черта должна была сказать sed, что мы ищем литеральную обратную косую черту здесь, и не интерпретировать '\n' как символ перевода строки.