URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6395
[ Назад ]

Исходное сообщение
"Удаление символа с шестнадцатиричным значением 00 "

Отправлено zxprsl , 20-Апр-07 07:58 
Вопрос такой:

есть лог файл , льётся с АТС, в нём присутствует символ с шестнадцатиричным значением 00.
Его нужно както вырезать, удалить.. из-за него не происходит импорт в БД

Есть какие нить средства сделать ето?
приведите пожалуйста пример скриптика к примеру на AWK

P.S. Я в програмировании не силён


Содержание

Сообщения в этом обсуждении
"Удаление символа с шестнадцатиричным значением 00 "
Отправлено vic , 20-Апр-07 08:24 
>Вопрос такой:
>
>есть лог файл , льётся с АТС, в нём присутствует символ с
>шестнадцатиричным значением 00.
>Его нужно както вырезать, удалить.. из-за него не происходит импорт в БД
>
>
>Есть какие нить средства сделать ето?
>приведите пожалуйста пример скриптика к примеру на AWK
>
>P.S. Я в програмировании не силён

есть простенькая утилита tr:
tr -d '\000' < ats.log > ats_to_db.log

man tr или tr --help для информации


"Удаление символа с шестнадцатиричным значением 00 "
Отправлено zxprsl , 20-Апр-07 09:38 

>есть простенькая утилита tr:
>tr -d '\000' < ats.log > ats_to_db.log
>
>man tr или tr --help для информации


Спасибо, всё получилось...
только несовсем понятно почему 000, я вот пытался ради любопытства удалить скадем символ с шеснадцатиричном кодом 0А задав

tr -d '\00А' < ats.log > ats_to_db.log

результатов никаких... в мане и хелпе нанашол... как удалить такй символ ??


"Удаление символа с шестнадцатиричным значением 00 "
Отправлено vic , 20-Апр-07 10:02 
>только несовсем понятно почему 000, я вот пытался ради любопытства удалить скадем
>символ с шеснадцатиричном кодом 0А задав
>
>tr -d '\00А' < ats.log > ats_to_db.log
>
>результатов никаких... в мане и хелпе нанашол... как удалить такй символ ??
>

'\000' - восьмеричный код (octal value), в мане это есть :)
соответственно для 0x0A следует писать либо '\012' или просто '\n', т.к.
символы 0x0A, 0xOD это распространенные символы то для них есть соотвествующие эскейп-коды: \n и \r соотвественно.

tr -d '\n' < ats.log > ats_to_db.log
или
tr -d '\012' < ats.log > ats_to_db.log


"Удаление символа с шестнадцатиричным значением 00 "
Отправлено vic , 20-Апр-07 10:04 
>tr -d '\n' < ats.log > ats_to_db.log
>или
>tr -d '\012' < ats.log > ats_to_db.log

лучше использовать \n и \r вместо цифровых кодов так всем понятней.


"Удаление символа с шестнадцатиричным значением 00 "
Отправлено pavel_simple , 20-Апр-07 10:03 
потому что восьмиричная


"Удаление символа с шестнадцатиричным значением 00 "
Отправлено zxprsl , 20-Апр-07 11:55 
Спасибо, всё понятно :)