2014-11-20 4 views
1

Я хочу удалить в своем тексте любой символ ASCII с кодом в интервале [128-255]. gsub (/ [^ a-z] /, "", $ 0) - Вот как я удаляю все, кроме букв; gsub | ǎ | à | å | ä | â /, "", $ 0) - Вот как я удаляю некоторые расширенные символы, но не каждый. gsub (/ "[\ 128- \ 255]" /, "", $ 0) Я пытаюсь это сделать, но это показывает мне ошибку, неверный интервал. Итак, кто-нибудь может помочь с этой проблемой. Спасибо заранее.Удаление расширенных символов ASCII. Сценарий Linux (128-255)

ответ

0

обратной косой черты коды должны быть в восьмеричном виде, или с префиксом x и шестнадцатеричное.

\200-\377 
\x80-\xff 

Или вы могли бы просто использовать strings.

+0

На самом деле это не сработало, но я просто использовал метод грубой силы, я скопировал каждый возможный расширенный символ ASCII в нижнем регистре и удалил его. : D Спасибо в любом случае, ваше решение выглядит хорошо, но я не знаю, почему он не работает. :( –

0

Синтаксис \nnn восьмеричный (где n является 0-7), так:

\128 = invalid octal 
\200 = 128 
\255 = 173 
\377 = 255 

Так что вы хотите:

\200-\377