2017-08-14 96 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