Удаление буквенно-цифрового суффикса в файле
У меня есть определенные строки, которые имеют идентификаторы в 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
$