删除文件中的字母数字后缀
Removing alpha numeric suffix in the file
我在文件的第 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 结尾的行
在第 ($
) 行处搜索 :E1
并替换为空:
sed 's/:E1$//' File
我要删除第 4 列以 :E1 结尾的行:
$ awk ' !~ /:E1$/' foo
$
我在文件的第 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 结尾的行
在第 ($
) 行处搜索 :E1
并替换为空:
sed 's/:E1$//' File
我要删除第 4 列以 :E1 结尾的行:
$ awk ' !~ /:E1$/' foo
$