Удаление частей строки, которые содержат цифры с помощью SED / Perl - PullRequest
4 голосов
/ 06 августа 2010

У меня есть данные, которые выглядят так:

AB208804_1 446 576 AB208804_1orf 0
AB208804_20 446 576 AB208804_20orf 0

Я хочу преобразовать их в это:

AB208804 446 576 AB208804orf 0
AB208804 446 576 AB208804orf 0

, просто удалив _ \ цифру в столбцах 1 и 4.

Почему эта строка не работает:

sed 's/_\d+//g'

Как правильно это сделать (однострочно)?

Ответы [ 3 ]

6 голосов
/ 06 августа 2010

Вам нужен ключ -r и класс символов для sed.

$ echo "AB208804_1 446 576 AB208804_1orf 0" | sed -r 's/_[0-9]+//g'
AB208804 446 576 AB208804orf 0

Или, так как вы спросили;в perl:

$ echo "AB208804_1 446 576 AB208804_1orf 0" | perl -ne 's/_\d+//g; print $_'
AB208804 446 576 AB208804orf 0
2 голосов
/ 06 августа 2010

Попробуйте:

sed 's/_[0-9]\+//g' 
1 голос
/ 06 августа 2010
 sed 's/_[0-9][0-9]*//g' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...