Я хотел бы преобразовать следующую шестнадцатеричную строку в обычную строку и заменить inline в содержимом файла. шестнадцатеричный символ для флажка ИСТИНА.
Входной файл:
Создать список контактов
L0 | Создать список контактов | C432965 (2466 мс)
Создать контакт
1) L0 | Создать основной контакт | C679288
Ожидаемый файл:
Создать список контактов
ЗАМЕНЕНО L0 | Создать список контактов | C432965 (2466 мс)
Создать контакт
1) L0 | Создать основной контакт | C679288
Hexdump файла примера:
root@server:/portal# hexdump -C /report.txt
00000000 0a 0a 20 20 43 72 65 61 74 65 20 43 6f 6e 74 61 |.. Create Conta|
00000010 63 74 20 4c 69 73 74 0a 20 20 20 20 e2 88 9a 20 |ct List. ... |
00000020 4c 30 20 7c 20 43 72 65 61 74 65 20 63 6f 6e 74 |L0 | Create cont|
00000030 61 63 74 20 6c 69 73 74 20 7c 20 43 34 33 32 39 |act list | C4329|
00000040 36 35 20 28 32 34 36 36 6d 73 29 0a 0a 20 20 43 |65 (2466ms).. C|
00000050 72 65 61 74 65 20 43 6f 6e 74 61 63 74 0a 20 20 |reate Contact. |
00000060 20 20 31 29 20 4c 30 20 7c 20 43 72 65 61 74 65 | 1) L0 | Create|
00000070 20 62 61 73 69 63 20 63 6f 6e 74 61 63 74 20 7c | basic contact ||
00000080 20 43 36 37 39 32 38 38 0a 0a | C679288..|
0000008a
Пробный код:
Я могу преобразовать эту шестнадцатеричную строку с помощью iconv и tr в переменную, но как мне добиться того же, чтобы заменить весь файл, он повторяет такое содержимое?
echo "√" | iconv -f UTF-8 | tr '√' 'REPLACED' | ed -s /report.txt
sed -i 's/√/REPLACED/g' /report.txt
perl -pi -e 's/√/REPLACED/g' /report.txt
Есть ли какое-либо решение через sed -i -e, чтобы изменить файл напрямую для такого специального символа?