У меня есть несколько строк, которые я получаю в порядке, используя следующиеУдалить первые строки, пока совпадения регулярного выражения в колонке
grep ENSG00000006114 File | sort -V
chr17 35874900 35879174 ABCD0000006114:I25 -
chr17 35874901 35879174 ABCD0000006114:I25 -
chr17 35875548 35875671 ABCD0000006114:E27 -
chr17 35875672 35877289 ABCD0000006114:I26 -
chr17 35877290 35877445 ABCD0000006114:E26 -
chr17 35877446 35877932 ABCD0000006114:I25 -
Однако я хочу, чтобы удалить первые строки, содержащие ': Я в первый ряд, пока я не получаю «Х» для этого я что-то пытаюсь как
grep ENSG00000006114 File | sort -V | awk '{if ($4 ~ /:I/ && NR==1) next};1'
Однако там может быть более одного вхождения, как и в предыдущем случае в течение первых нескольких строк, так как я исключить строки содержащий: I до первого: E встречается в первой строке, так что моим окончательным результатом будет:
chr17 35875548 35875671 ABCD0000006114:E27 -
chr17 35875672 35877289 ABCD0000006114:I26 -
chr17 35877290 35877445 ABCD0000006114:E26 -
chr17 35877446 35877932 ABCD0000006114:I25 -
Большое спасибо (для объяснения также) ..работано! – AishwaryaKulkarni
Это гораздо сложнее, чем должно быть, см. Http://stackoverflow.com/a/39559531/1745001. Может быть, время для кофе ;-). –
Появляется немного больше, потому что OP хочет только пропускать блок из первого ': I' в следующий': E' в '$ 4'. Если нет ': I', нам не нужно пропускать строки до': E' – anubhava