awk 打印几个子字符串



我希望能够通过awk打印几个子字符串。 这是我通常做的事情的一个例子;

awk' {print substr($0,index($0,string),10)} ' test.txt > result.txt

这允许我在发现字符串后打印 10 个字母。 但结果是第一个子字符串,而不是我预期的几个子字符串。

如果我使用字符串"ATGC",这里有一个例子:

测试.txt

ATGCATATAAATGCTTTTTTTTT

结果.txt

ATGCATATAA

而不是

ATGCATATAA
ATGCTTTTTT

我必须添加什么?

我相信答案对你们来说很容易! 谢谢你的帮助。

如果你有 gawk (gnu awk(,你可以使用FPAT

awk -v FPAT='ATGC.{6}' '{for(i=1;i<=NF;i++)print $i}' file

以您的示例为例:

$ awk -v FPAT='ATGC.{6}' '{for(i=1;i<=NF;i++)print $i}' <<<"ATGCATATAAATGCTTTTTTTTT"                                                                                  
ATGCATATAA                                                                                                                                                                 
ATGCTTTTTT
awk '{print substr($0,1,10),RS substr($0,length -12,10)}' file
ATGCATATAA 
ATGCTTTTTT

最新更新