我希望能够通过awk打印多个子字符串。 这里是我平常工作的一个例子;
awk' {print substr($0,index($0,string),10)} ' test.txt > result.txt
这使我在发现字符串后可以打印10个字母。 但是结果是第一个子字符串,而不是我期望的几个。
下面是一个示例,如果我使用字符串“ ATGC”:
test.txt
ATGCATATAAATGCTTTTTTTTT
result.txt
ATGCATATAA
代替
ATGCATATAA
ATGCTTTTTT
我要添加什么?
我相信答案对您来说很容易! 谢谢您的帮助。
答案 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