Замена escape-последовательностей на Sed - PullRequest
0 голосов
/ 14 марта 2019

Со следующим текстовым файлом, test.txt:

{\x22order\x22:\x22161332\x22,\x22name\x22:\x22chiller\x22,\x22code\x22:\x22chiller\x22}
{\x22order\x22:\x22161332\x22,\x22name\x22:\x22chiller\x22,\x22code\x22:\x22chiller\x22}
{\x22order\x22:\x22161332\x22,\x22name\x22:\x22chiller\x22,\x22code\x22:\x22chiller\x22}

Как заменить вхождения \x22 одинарными кавычками в Sed?

Я пробовал это безрезультатно: sed -i "s#\x22#'#g" test.txt

1 Ответ

2 голосов
/ 14 марта 2019

Вам нужно экранировать обратную косую черту, чтобы сделать ее буквальной, и вам нужно использовать '\'' для представления одинарной кавычки в одинарной кавычке (какой они все должны быть, если только это не является обязательным, в противном случае) строка или скрипт

$ sed 's/\\x22/'\''/g' file
{'order':'161332','name':'chiller','code':'chiller'}
{'order':'161332','name':'chiller','code':'chiller'}
{'order':'161332','name':'chiller','code':'chiller'}
...