как использовать tr для удаления восьмеричной последовательности символов?

Вы можете попросить X-сервер использовать только 8-битную глубину. В вашем /etc/X11/xorg.conf файле:

Section "Screen"
        Identifier "Screen0"
        DefaultDepth    8
EndSection
1
25.04.2017, 19:35
2 ответа
sed -e 's/^[ ]*--More--.*\x8//' -e 's/\xD$//'

  • Вместо записи s/ */../ лично я предпочитаю s/[ ]*/../, поскольку он делает * видимым образом прикрепленным к атому слева, когда это пробел/TAB.
  • GNU sed имеет средство сопоставления шестнадцатеричных чисел с последовательностью \x hexdigit.
3
29.04.2021, 00:02

Самое простое решение — думать наоборот. Вместо того, чтобы пытаться определить символы, которые вам не нужны, определите те, которые вам нужны, и удалите все остальное :

.
sed 's/--More--[^ a-zA-Z0-9]*//' file 

Это удалит строку --More--и 0 или более символов после нее, которые не являются пробелом, буквой или цифрой. В зависимости от ваших данных вам, возможно, придется немного настроить этот набор (, например. также разрешите _или что вам нужно ).

Теперь первый --More--в вашем вопросе, по-видимому, содержит символы возврата (восьмеричное 010, Hex 7, ASCII \b), так что вы также можете просто сделать:

perl -pe 's/[\b]//g' file

Или, чтобы также удалить --More--:

perl -pe 's/--More--[\b]+//g' file
2
29.04.2021, 00:02

Теги

Похожие вопросы