2013-04-27 2 views
-1

Я новичок в Unix. Я использую команду sed для удаления мусора из TXT-файла в Unix. Это команда, я used--Regex для удаления мусора из файла .txt в Unix

sed -e 's/[^ -~]//g' final.txt > file1_now 

, но здесь я столкнулся с проблемой в джонки становятся удалены, но в случае, если мои данные содержит «-», который также удаляется. Я этого не хочу.

Цените свою помощь.

Спасибо, Binayak

ответ

1

Попробуйте сделать это:

sed -e 's/[^ ~-]//g' final.txt > file1_now 

- характер должен быть последним (или первым) в классе символов, потому что смысл отличается в других случаях : это означает диапазон, как в [a-z]


Символ-символ рассматривается как буквальный символ, если он является последним или первым (после символа ^) в скобках: [abc-], [-abc].

http://en.wikipedia.org/wiki/Regular_expression

+0

Дефис используется для диапазонов символов в классах символов. '[A-DF]' эквивалентен '[ABCDF]'. Итак, для того, чтобы дефис стоял за себя, либо он ничего не должен иметь перед собой или ничего после него. Каретка для отрицания находится спереди, поэтому дефис должен идти в конце. –

Смежные вопросы