Шестигранные символы представлены в форме <9F>
. Вокруг них много данных, но меня интересует только регулярное выражение, поэтому я могу удалить их из таблицы с помощью sed
, а затем повторно импортировать базу данных.Пытается использовать egrep для вытаскивания только согласованных шестнадцатеричных символов из базы данных
Вот что я пытался до сих пор:
egrep -io '\<[0-9A-Fa-f]{2}\>' /root/database.sql
И несколько вариаций. Я не могу заставить его работать, и я не знаю, почему. Я пробовал двойное/тройное экранирование и группировку. Он находит пару символов, но не найти < >
«s
Так это дает такой вывод:
39
48
69
6F
B9
, но мне нужно, чтобы получить полный
<39>
<48>
<69>
<6F>
<B9>
Это очень странно, оно работает для меня в тестовом файле, но не в файле базы данных, поэтому я должен предположить, что фактические данные в db не так, как он появляется, когда я просматриваю его с помощью «less» или «vim ». –
Вы можете попробовать 'od -xa имя_файла | less', чтобы просмотреть содержимое шестнадцатеричного и ascii файла. Это может дать вам лучшее представление о его содержании. Кроме того, 'file filename' расскажет вам, что думает Linux в файле. –
О, и не входите в систему как «root», когда вы экспериментируете. Не бегайте ножницами, всегда наденьте солнцезащитный крем и наденьте свитер - я холодный.:-) –