Подмножество строк с шаблоном соответствия - PullRequest
1 голос
/ 20 марта 2019

У меня есть файл с разделителями табуляции со столбцами, отформатированными так:

cat    1/1:127:59:0:1    0/0:.:78:0:.,.,.:1    0/0:.:64:0:.,.,.:     
cat    0/0:.:53:0:.,.,.:1    0/1:.:53:0:.,.,.:0    0/0:.:57:0:.,.,.:1
dog    1/0:127:59:0:1    1/1:.:78:0:.,.,.:1    0/0:.:64:0:.,.,.:1

Мне нужно поместить все строки, в которых есть один или несколько столбцов, которые начинаются с «1/1:» и заканчиваются на «: 1», давая следующий файл:

cat    1/1:127:59:0:1    0/0:.:78:0:.,.,.:1    0/0:.:64:0:.,.,.:0
dog    1/0:127:59:0:1    1/1:.:78:0:.,.,.:1    0/0:.:64:0:.,.,.:1

Я пытался использовать grep и регулярные выражения, но я не могу заставить его работать.

Любая помощь будет принята с благодарностью!

NB. Фактический файл очень большой

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Использование grep a BRE должно быть таким:

grep ' 1/1:[^ ]*:1\( \|$\)' file

Вам нужно только проверить, начинается ли один столбец и заканчивается ли он желаемыми разделителями.

Обратите внимание, что есть пробелв начале регулярного выражения.

0 голосов
/ 20 марта 2019

Вы можете попробовать

^.+?\s1\/1.+

См. демо на regex101.com .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...