0

我在文件的第 4 列中有某些行的 ID 以 ':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

我想删除第 4 列中以 :E1 结尾的行

4

2 回答 2

2

我想删除第 4 列中以 :E1 结尾的行

$ awk '$4 !~ /:E1$/' foo
$
于 2016-09-19T19:12:46.070 回答
1

搜索:E1at of line ( $) 并替换为空:

sed 's/:E1$//' File 
于 2016-09-19T17:17:22.537 回答