Проблема, с которой вы столкнулись, связана с тем, как Unix-подобные системы обрабатывают символы новой строки. В вашем случае переменная `result_content` содержит несколько строк текста, но в конце этой переменной нет символа новой строки.
Когда вы используете команду `printf` для вывода `result_content`, она выводит текст без добавления символа новой строки в конце. Следовательно, `wc -l` считывает только строки, которые были завершены символом новой строки.
В вашем примере `result_content` содержит 3 строки:
```
# Just some title
# One more title
# comment again just for test
```
Но последняя строка не заканчивается новой строкой, и поэтому `wc -l` подсчитывает только 2 полные строки.
Чтобы получить правильный результат, вы можете добавить символ новой строки в конец переменной `result_content`. Вы можете сделать это несколькими способами:
1. **Добавить символ новой строки вручную**:
```bash
result_content="# Just some title
# One more title
# comment again just for test
"
printf "$result_content" | wc -l
```
2. **Использовать `printf` с аргументом `-e`, который позволяет интерпретировать escape-последовательности**:
```bash
result_content="# Just some title
# One more title
# comment again just for test"
printf "%s\n" "$result_content" | wc -l
```
3. **Использовать `echo` с добавлением символа новой строки**:
```bash
result_content="# Just some title
# One more title
# comment again just for test"
echo -e "$result_content\n" | wc -l
```
Любой из этих методов позволит `wc -l` правильно снять количество строк, и вы получите ожидаемый результат — 3 строки.