Как адаптировать ширину гибкого div к контенту

Один из способов - просто обрабатывать двоичные файлы как текст в любом случае, с grep --text, но это может привести к тому, что двоичная информация будет отправлена ​​на ваш терминал. Это не очень хорошая идея, если вы используете терминал, который интерпретирует выходной поток (например, VT / DEC или многие другие).

Кроме того, вы можете отправить файл через tr со следующим command:

tr '[\000-\011\013-\037\177-\377]' '.' <test.log | grep whatever

Это изменит что-нибудь меньшее, чем пробельный символ (кроме новой строки) и ничего больше 126, на символ ., оставив только печатные материалы.


Если вы хотите, чтобы каждый «незаконный» символ заменялся другим, вы можете использовать что-то вроде следующей программы на C: классический стандартный входной фильтр:

#include<stdio.h>
int main (void) {
    int ch;
    while ((ch = getchar()) != EOF) {
        if ((ch == '\n') || ((ch >= ' ') && (ch <= '~'))) {
            putchar (ch);
        } else {
            printf ("{{%02x}}", ch);
        }
    }
    return 0;
}

Это даст вам {{NN}} , где NN - шестнадцатеричный код для символа. Вы можете просто отрегулировать printf для любого желаемого стиля вывода.

Вы можете увидеть эту программу в действии здесь, где она:

pax$ printf 'Hello,\tBob\nGoodbye, Bob\n' | ./filterProg
Hello,{{09}}Bob
Goodbye, Bob
13
задан TylerH 18 May 2016 в 23:21
поделиться