У меня возникли проблемы с командой sed:
Я хочу заменить в строке одинарную кавычку двумя одинарными кавычками
Вот моя строка:
04CA07807800106109XE00187200000081960 NI 0780643442 178'0700
Я использовал эту команду sed для замены одинарной кавычки:
line=`echo $line | sed "s/'/''/g"`
Результат
04CA07807800106109XE00187200000081960 NI 0780643442 178''0700
Как видите, одинарная кавычка правильно заменена двумя одинарными кавычками.
Но я потерял все пробелы между каждым символом строки, и мне действительно нужно их сохранить.
Есть ли способ сохранить эти пробелы с помощью команды sed?
Я попробовал с помощью команды tr и получил тот же результат.
Спасибо за помощь.
printf '%s\n' "$line"
на самом деле немного более правильный, чемecho "$line"
(который сам по себе гораздо более правильный, чемecho $line
) при работе с произвольным вводом - см. раздел ИСПОЛЬЗОВАНИЕ ПРИЛОЖЕНИЯ pubs.opengroup.org/onlinepubs/009604599/utilities/echo.html - person Charles Duffy   schedule 18.05.2016