String Sed命令查找多个图案并打印该图案的行及其后的第n行

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

我有一个以制表符分隔的文件,有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   -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]