2017-08-14 98 views
0

我有一个大文件的样子的例子:编辑文本文件,并创建一个新的文件

chr1:16872433-16872504 54 112622 
chr1:16872433-16872504 55 112110 
chr1:16872433-16872504 56 110996 
chr1:16872433-16872504 57 110306 
chr1:16861773-16861845 20 38808 
chr1:16861773-16861845 21 39768 
chr1:16861773-16861845 22 40344 
chr1:16861773-16861845 23 40637 
chr1:16861773-16861845 24 41311 
chr2:7990338-7990408 8 0 
chr2:7990338-7990408 9 0 
chr2:7990338-7990408 10 0 
chr2:7990338-7990408 11 0 
chr2:7990338-7990408 12 0 

我想提取开始“chr1:16872433-16872504”每一个部分,并作出新.txt文件。 我怎么能做到这一点在bash?我试过grep命令,但我不知道如何使它有条件。

回答

1
grep -E 'chr1:16872433-16872504' your.txt > new.txt 

为您提供了以下输出

chr1:16872433-16872504 54 112622 

chr1:16872433-16872504 55 112110 

chr1:16872433-16872504 56 110996 

chr1:16872433-16872504 57 110306 

按您的要求[“CHR 1:16872433-16872504”]

+0

没有必要使用猫,并添加“赌注和大括号”使用正则表达式检查文本是否在行首。 grep的-E '$ CHR 1:16872433-16872504' your.txt> new.txt –

+1

编辑和感谢詹姆斯和拉曼 –

+0

我都尝试1- grep的-E 'CHR 1:16872433-16872504' your.txt> new.txt和2- grep的-E '$ CHR 1:16872433-16872504' your.txt> new.txt但new.txt是空 – john

相关问题