
У меня есть файл с 5,5 миллионами строк.
Пример:
chr1 10000 10468 + (TAACCC)n Simple_repeat Simple_repeat
chr1 10468 11447 - TAR1 Satellite telo
chr1 11504 11675 - L1MC5a LINE L1
chr1 11677 11780 - MER5B DNA hAT-Charlie
chr10_GL383545v1_alt 11877 11980 - Alu ERV1
chr11_BL383595v1_alt 12077 12980 - Alu ERV1
chr3 11504 11675 - L1MC5a LINE L1
Мне интересно сохранить только те строки, которые не имеют _
в первом столбце
Вывод будет примерно таким:
chr1 10000 10468 + (TAACCC)n Simple_repeat Simple_repeat
chr1 10468 11447 - TAR1 Satellite telo
chr1 11504 11675 - L1MC5a LINE L1
chr1 11677 11780 - MER5B DNA hAT-Charlie
chr3 11504 11675 - L1MC5a LINE L1
Я не знаю, сколько у меня нежелательных строк. Я бы предпочел использовать, awk
но обычные команды bash тоже подойдут.
решение1
awk
лучше всего подходит для работы со столбцами
awk '$1 !~ /_/' file
!~
позволяет проверить, не соответствует ли что-то шаблону
Сgrep
grep -v '^\S*_' file
или, если \S
не распознан,
grep -v '^[^[:space:]]*_' file