Удаление буквенно-цифрового суффикса в файле

У меня есть определенные строки, которые имеют идентификаторы в 4-м столбце файла, заканчивающегося на ':E1' (я хочу удалить эти строки, имеющие 4-й столбец, конкретно заканчивающийся на: E1, а не: E11 или:E10 s и т. Д.). Когда я делаю grep, я получаю, что есть 87 линий, имеющих этот шаблон

    grep "\:E1\b" File | wc -l
    87

Однако, когда я делаю

    sed '/:E1$/d' File > tmp
    wc -l File
    245797 File 
    wc -l tmp
    245797 tmp

которая равна исходной длине файла, что указывает на то, что строки с шаблоном, заканчивающимся на: E1, не удаляются. Где я ошибаюсь в понимании команды? Файл выглядит так

chr1    133374  133566  ENSG00000238009:E1  -   ENSG00000238009 1
chr1    995083  995226  ENSG00000217801:E1  +   ENSG00000217801 1
chr1    1385294 1385499 ENSG00000215915:E1  +   ENSG00000215915 1
chr1    10003388    10003465    ENSG00000162441:E1  -   ENSG00000162441 1
chr1    38273332    38273352    ENSG00000197982:E1  +   ENSG00000197982 1

Я хочу удалить строки, заканчивающиеся на: E1 в 4-м столбце

2 ответа

Решение

Я хочу удалить строки, заканчивающиеся на:E1 в 4-м столбце:

$ awk '$4 !~ /:E1$/' foo
$

Ищи :E1 на линии ($) и заменить ничем

sed 's/:E1$//' File 
Другие вопросы по тегам