目标:打印由分号 ($3和$2)分隔的两个字段之间的差异,并+1在以“ >”开头的每行末尾添加一个整数 ( ) 到该计算值。
我的文件的代表性示例:
>lcl|ORF1_ 17609 17804 (+):21:131 unnamed protein product
MEKVKNKFDENDIKVPFVPSSLLFNNTGNLNTMDKR
>lcl|ORF2_ 17609 17804 (+):70:111 unnamed protein product
MFLLHYYLIIQVI
>lcl|ORF3_ 17609 17804 (+):112:147 unnamed protein product
MQWIKDKVLIK
>lcl|ORF4_ 17609 17804 (+):129:91 unnamed protein product
MFYPLYLDYLYY
>lcl|ORF5_ 17609 17804 (+):90:1 unnamed protein product, partial
MIMKKEQMELLYHSHQIYFLPFPLHQNIHP
Run Code Online (Sandbox Code Playgroud)
期望输出:
>lcl|ORF1_ 17609 17804 (+):21:131 unnamed protein product:111
MEKVKNKFDENDIKVPFVPSSLLFNNTGNLNTMDKR
>lcl|ORF2_ 17609 17804 (+):70:111 unnamed protein product:42
MFLLHYYLIIQVI
>lcl|ORF3_ 17609 17804 (+):112:147 unnamed protein product:36 …Run Code Online (Sandbox Code Playgroud) 目标:当 File1 的字段 1 ( $1) 和字段 4 ( $4)都与File2 中$4以 " >"开头的行上的字段 4 ( )中的子字符串匹配时,打印 File2 的行。
重要提示#1:打印到输出的行包括正在搜索的行和它后面的所有行,直到下一行带有“ >”。
示例:当File1 的字段 1 和 4分别为2776& 时2968,应针对 File2 的字段 4 搜索它们以最终找到匹配项2776-2968(+)(因为File1 的两个数字都匹配 File2 的字段 4 中的子字符串)。字符串中数字的顺序无关紧要 -2968-2776(+)也应视为匹配。因为它们匹配,所以 File2 的那一行被打印在它下面的所有行,直到>遇到另一行带有“ ”。
重要说明#2: File1 是制表符分隔的:\t. 文件 2 以冒号分隔::.
文件1:
Transcription_Start Translation_Start Translation_Stop Transcription_Stop Strand …Run Code Online (Sandbox Code Playgroud)