String Sed命令查找多个图案并打印该图案的行及其后的第n行
我有一个以制表符分隔的文件,有43075行和7列。我按第4列将文件从最大值排序到较小值。现在我需要找到342个基因,ID在第2列。见下例:String Sed命令查找多个图案并打印该图案的行及其后的第n行,string,sed,String,Sed,我有一个以制表符分隔的文件,有43075行和7列。我按第4列将文件从最大值排序到较小值。现在我需要找到342个基因,ID在第2列。见下例: miR Target Transcript Score Energy Length miR Length target aae-bantam-3p AAEL007110 AAEL007110-RA 28404 -565.77 22 1776 aae-let-7 AAEL007110 AAEL007110-RA 28404
miR Target Transcript Score Energy Length miR Length target
aae-bantam-3p AAEL007110 AAEL007110-RA 28404 -565.77 22 1776
aae-let-7 AAEL007110 AAEL007110-RA 28404 -568.77 21 1776
aae-miR-1 AAEL007110 AAEL007110-RA 28404 -567.77 22 1776
aae-miR-100 AAEL007110 AAEL007110-RA 28404 -567.08 22 1776
aae-miR-11-3p AAEL007110 AAEL007110-RA 28404 -564.03 22 1776
.
.
.
aae-bantam-3p AAEL018149 AAEL018149-RA 28292 -569.7 22 1769
aae-bantam-5p AAEL018149 AAEL018149-RA 28292 -570.93 23 1769
aae-let-7 AAEL018149 AAEL018149-RA 28292 -574.26 21 1769
aae-miR-1 AAEL018149 AAEL018149-RA 28292 -568.34 22 1769
aae-miR-10 AAEL018149 AAEL018149-RA 28292 -570.08 22 1769
每个基因有124个株系。但是,我想提取每个基因的最高点击率,例如,由于文件已排序,所以前5个基因。我可以用下面的脚本为一个基因做这件事:
sed -n '/AAEL018149/ {p;q}' myfile.csv > top-hits.csv
但是,它只打印匹配的行。我想知道我是否可以用一个脚本一次获得所有的342个基因。如果我能在比赛中和接下来的4场比赛中出线,那就太好了。然后每个基因的命中率都会排在前5位。
欢迎提出任何建议。谢谢使用grep:
grep -A 4 AAEL018149 myfile.csv
您也可以为此使用
awk
:
awk '++a[$2]<=5' myfile.csv
awk'++a[$2]