我有一些行在文件的第4列中有ID,以':E1'结尾。 (我想删除这些第4列专门结尾的行:E1不是:E11或:E10等)。当我做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结尾的行
答案 0 :(得分:2)
我想删除以第4列中的E1结尾的行:
$ awk '$4 !~ /:E1$/' foo
$
答案 1 :(得分:1)
在第(:E1
行)处搜索$
并替换为空:
sed 's/:E1$//' File