以下是awk命令的组合
awk '
{if ($0~/>/) {head=$0;getline}
{if($0~/pattern/) print head"\n"$0}}' filename1 |
awk
'BEGIN {pos=0;char=0}
{if($0~/>/) head=$0;getline}
{pos=0;
if($0~/pattern/)
{pos=match($0,/pattern/);char=substr($0,pos,55)}
print head"\n"char}'
以上一个效果很好,我想在识别模式“AATTGGCC”后捕获 55 个字符。问题是如何获得匹配模式的 55 个字符前缀(匹配模式前的 55 个字)。是的,我可以在 perl 中编写全部内容,但是由于我在 awk 中有上述内容,我想知道是否可以以某种方式对其进行修改。
谢谢