В `bash` вы можете использовать конструкцию `cat`, чтобы передать содержимое файла без потери переносов строк, и вы можете просто использовать команду `echo` с использованием ключа `-e` или же обрабатывать текст через команду `printf`. Рассмотрим несколько способов решения вашей задачи.
### Способ 1: Использование `cat`
Вы можете просто перенаправить содержимое файла непосредственно в другую команду. Например, чтобы записать содержимое файла `/tmp/1.txt` в другой файл, используйте:
```bash
cat /tmp/1.txt > /tmp/2.txt
```
### Способ 2: Использование `while read`
Если вам нужно передать содержимое файла как аргумент команде с сохранением переносов строк, вы можете использовать цикл `while read`:
```bash
while IFS= read -r line; do
echo "$line"
done < /tmp/1.txt > /tmp/2.txt
```
### Способ 3: Использование `printf`
`printf` позволяет более гибко работать с форматированием содержимого:
```bash
printf "%s\n" "$(cat /tmp/1.txt)" > /tmp/2.txt
```
### Способ 4: Команда `awk`
Если вы используете `awk`, вы также можете сохранить многострочный текст:
```bash
awk '{print}' /tmp/1.txt > /tmp/2.txt
```
### Резюме
Если просто нужно скопировать содержимое с сохранением переносов строк, проще всего использовать команду `cat`. Если необходимо модифицировать текст или работать с ним в виде аргументов, подойдут `while read`, `printf` или `awk`.