sed заменяет строку на цифры специальными символами - PullRequest
0 голосов
/ 19 января 2019

я хочу заменить

4328"  +  base64_encode\("\x86\x01\x02\x03\x04\x05\x06\x07\x25\x07\x2E\x01\x02\x03\x04\xBB\x01\x62\x1A\x01\x01

на

4321\x38\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93

пробовал множество опций, ничего не получилось, последнее, что я пробовал, это

sed -i 's/4328["]  +  base64_encode[(]"\x86\x01\x02\x03\x04\x05\x06\x07\x25\x07\x2E\x01\x02\x03\x04\xBB\x01\x62\x1A\x01\x01/"4321\x38\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93"/g' *.utt

1 Ответ

0 голосов
/ 19 января 2019

Не могли бы вы попробовать следующее, протестировано только с показанными образцами.

sed -E 's/[0-9]+\".*\x[0-9]+/321\\x38\\x80\\x81\\x8\\x83\\x84\\x85\\x86\\x87\\x88\\x89\\x8A\\x8B\\x8C\\x8D\\x8E\\x8F\\x90\\x91\\x92\\x93/g'  Input_file

Допустим, у нас есть следующий Input_file.

cat Input_file
singh is king bla bla 4328"  +  base64_encode\("\x86\x01\x02\x03\x04\x05\x06\x07\x25\x07\x2E\x01\x02\x03\x04\xBB\x01\x62\x1A\x01\x01

Теперь после запуска кода мы получим следующий вывод.

sed -E 's/[0-9]+\".*\x[0-9]+/321\\x38\\x80\\x81\\x8\\x83\\x84\\x85\\x86\\x87\\x88\\x89\\x8A\\x8B\\x8C\\x8D\\x8E\\x8F\\x90\\x91\\x92\\x93/g'  Input_file
singh is king bla bla 321\x38\x80\x81\x8\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93
...