Самое простое решение — думать наоборот. Вместо того, чтобы пытаться определить символы, которые вам не нужны, определите те, которые вам нужны, и удалите все остальное :
.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
Дважды проверьте, является ли TERM
чем-то вроде «xterm -color», и правильно ли загружена ваша оболочка rc. Раньше у меня были проблемы с загрузкой ~/.kshrc
в сеансе ssh.