Проблема с помощью sed с файлами, содержащими кавычки

Используя

sed 's/$/x /'

и ввод строки

нечто "панель

к стандартному входу дает ожидаемый результат

нечто "barx

Однако помещая ту же строку в файл и выполнение

sed 's/$/x /' имя файла

дает результат

xoo "панель

Используя sed добавляют команду, дает тот же результат. Что команды bash/sed должны быть должны получить желаемый результат при добавлении символов в конце строк в файлах, содержащих кавычки?

0
задан 18 October 2019 в 16:45

1 ответ

Я не получаю те же результаты, которые Вы делаете. Первая мысль, которая прибывает по моему мнению, является окончаниями строки все же. Традиционно \n означает, что перевод строки (понижается), в то время как \r означает возврат каретки (возвратитесь для запуска), и оба подряд имеют в виду, понижаются затем обратно. Unix традиционно использует только \n, в то время как Microsoft использует \r\n.

Я размышляю о том, как sed обработал бы это, но возможно Ваш файл имеет \r\n для окончания строки, но sed быть инструментом Linux соответствует \n. Таким образом, сначала возвраты каретки к запуску строки, затем sed соответствует следующему символу, \n, и помещает x (но теперь курсор в начале строки, таким образом, это перезаписывает первый символ).

Попытайтесь создать файл с помощью редактора Linux, если Вы уже не были.

1
ответ дан 22 December 2019 в 00:18

Другие вопросы по тегам:

Похожие вопросы: