0

ファイルの 4 列目に ':E1' で終わる ID を持つ特定の行があります (4 列目が :E11 や :E10 などではなく :E1 で終わるこれらの行を削除したい)。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

1

:E1行の at at ( ) を検索し$、何も置き換えません。

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