Используя
sed 's/$/x /'
и ввод строки
нечто "панель
к стандартному входу дает ожидаемый результат
нечто "barx
Однако помещая ту же строку в файл и выполнение
sed 's/$/x /' имя файла
дает результат
xoo "панель
Используя sed добавляют команду, дает тот же результат. Что команды bash/sed должны быть должны получить желаемый результат при добавлении символов в конце строк в файлах, содержащих кавычки?
Я не получаю те же результаты, которые Вы делаете. Первая мысль, которая прибывает по моему мнению, является окончаниями строки все же. Традиционно \n означает, что перевод строки (понижается), в то время как \r означает возврат каретки (возвратитесь для запуска), и оба подряд имеют в виду, понижаются затем обратно. Unix традиционно использует только \n, в то время как Microsoft использует \r\n.
Я размышляю о том, как sed обработал бы это, но возможно Ваш файл имеет \r\n для окончания строки, но sed быть инструментом Linux соответствует \n. Таким образом, сначала возвраты каретки к запуску строки, затем sed соответствует следующему символу, \n, и помещает x (но теперь курсор в начале строки, таким образом, это перезаписывает первый символ).
Попытайтесь создать файл с помощью редактора Linux, если Вы уже не были.