使用awk / grep从数据库中提取#s,过滤

时间:2013-04-09 16:55:16

标签: filter awk grep

我有一个大的制表符分隔数据库,如下所示:

1       14933   14933   G       A       ID=COSN404397;OCCURENCE=1(lung)  
1       14948   14948   G       A       ID=COSN415697,COSN415698;OCCURENCE=2(urinary_tract)  
1       69537   69537   G       T       ID=COSM536198;OCCURENCE=1(lung)  
1       69538   69538   G       A       ID=COSM75742;OCCURENCE=1(ovary)  
...

我正在尝试使用awk或grep来保留只有OCCURENCE> = 3的行(是的,它在整个数据库中拼错了!),但我似乎无法弄清楚如何最好地分割/扫描第6列...

3 个答案:

答案 0 :(得分:1)

这个简短的单行应该适合你。顺便说一句,你当前的例子中没有OCCURENCE>=3行:)

 awk -F'OCCURENCE=|\\(' '$2>=3' file
好吧......如果打高尔夫球...... (=是关键......:D

awk -F'[(=]' '$3>2' file

答案 1 :(得分:0)

试试这个:

$ awk -F\; '{ if (substr($2,11,index($2,")")) >= 3) print $0; }' x.txt

答案 2 :(得分:0)

短一个衬垫,仍保持FS可用:

$ awk -F'[(=\t;]' '$9>2' file