в общем надо, чтоб работала такая конструкция
text
#!/bin/bash
sed '$c\msg='$1 file.txt Здесь $1 - строка, содержащая проблем. Поэтому sed не верно ее интерпретирует (слова в этой строке воспринимает как свои параметры)
В принципе такая штука работает тоже
text
sed '$d' 1.txt > 1.out
echo 'msg='$1 >> 1.out
но тогда создает временный файл, чего желательно бы избежать