0

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

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 列...

4

3 回答 3

1

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

 awk -F'OCCURENCE=|\\(' '$2>=3' file

好吧......如果打高尔夫球......(=是关键......:D

awk -F'[(=]' '$3>2' file
于 2013-04-09T17:04:50.807 回答
0

试试这个:

$ awk -F\; '{ if (substr($2,11,index($2,")")) >= 3) print $0; }' x.txt
于 2013-04-09T17:03:30.027 回答
0

一个仍然保持FS可用的短衬里:

$ awk -F'[(=\t;]' '$9>2' file
于 2013-04-09T17:05:55.077 回答