awk打印几个子字符串

时间:2018-10-19 15:13:49

标签: awk substring

我希望能够通过awk打印多个子字符串。 这里是我平常工作的一个例子;

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

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

下面是一个示例,如果我使用字符串“ ATGC”:

test.txt

ATGCATATAAATGCTTTTTTTTT

result.txt

ATGCATATAA

代替

ATGCATATAA
ATGCTTTTTT

我要添加什么?

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

2 个答案:

答案 0 :(得分:1)

如果您有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

答案 1 :(得分:-2)

awk '{print substr($0,1,10),RS substr($0,length -12,10)}' file

ATGCATATAA 
ATGCTTTTTT