awk 根据字符长度打印数据

awk 根据字符长度打印数据

#修改后的问题。

表中的第二列包含长度为 5 到 30 的字符,如下所示;

在此输入图像描述

如果我想提取长度为 5 个字母的字符的行,我使用

awk 'length($2)==5 { print }' input.tabular > output.tabular


因此,生成的“length_5.tabular”文件将仅从原始文件 AAKNN AATKP中提取以下行

,而“length_6.tabular”文件将提取 AAKKPP \ 的唯一行

我怎样才能循环这个,以便我可以根据字符长度获取26个文件(即,,length_5.tabular... length_6.tabularlength_30.tabular?我希望每个提取行的列都包含在结果文件中。

答案1

我对肽序列一无所知,但我想这就是你想要的:

awk '{
  fname=length($2) "mer.output.tabular"
  print >> fname
  close(fname)
}' input.tabular

相关内容