gpt4 book ai didi

regex - 删除第一行直到列中出现正则表达式

转载 作者:行者123 更新时间:2023-12-02 06:52:38 25 4
gpt4 key购买 nike

我有一些行,我使用以下命令获得

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 -

但是我想删除第一行中包含':I'的第一行,直到我得到':E',因为我一直在尝试类似的东西

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 -

最佳答案

假设由于您的输入文件很大,grep+sort 在该顺序中很有用,您需要从 awk 获得的是:

grep ENSG00000006114 File | sort -V | awk '$4~/:E/{f=1} f'

如果文件不大,你可能会丢失 grep:

sort -V File | awk '!/ENSG00000006114/{next} $4~/:E/{f=1} f'

关于regex - 删除第一行直到列中出现正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39559230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com