В многострочном файле мне пришлось передать через tr по обе стороны от sed, вот так:
echo "$FILE_CONTENTS" | \
tr '\n' ¥ | tr ' ' ∑ | mySedFunction $1 | tr ¥ '\n' | tr ∑ ' '
Видите, Unix любит вырезать новые строки, лишние пробелы и все виды вещей, потому что я думаю, что это было то, что нужно было делать в то время, когда это было сделано еще в 1900-х годах. Во всяком случае, этот метод, который я показываю выше, решает проблему на 100%. Хотел бы я, чтобы кто-то опубликовал это где-нибудь, потому что это спасло бы меня примерно на три часа моей жизни.