У меня возникли некоторые проблемы с SED команды:
я хотел бы заменить в строке, апостроф двумя одиночными кавычками
Вот моя строка:Держите пробелы при использовании команды в патч в Kornshell сценарии
04CA07807800106109XE00187200000081960 NI 0780643442 178'0700
Я использовал эту команду, чтобы патч в заменить одиночные кавычки:
line=`echo $line | sed "s/'/''/g"`
результат является
04CA07807800106109XE00187200000081960 NI 0780643442 178''0700
Как вы можете видеть, одинарная кавычка должным образом заменяется двумя одинарными кавычками.
Но я потерял все пробелы между каждым символом моей строки, и мне действительно нужно их сохранить.
Есть ли способ сохранить эти пробелы командой sed?
Я попробовал команду tr и получил тот же результат.
Благодарим за помощь.
BTW, 'printf '% s \ n'" $ line "' на самом деле немного правильнее, чем 'echo '$ line" '(что гораздо более корректно, чем' echo $ line') при работе с произвольными input - см. раздел ИСПОЛЬЗОВАНИЕ ПРИЛОЖЕНИЯ http://pubs.opengroup.org/onlinepubs/009604599/utilities/echo.html –
... btw, http://shellcheck.net/ нашел бы эту ошибку для вас без нуждающихся в привлечении людей. –
Я не знал об этом. Верно подмечено. благодаря ! – Green