我希望能够通过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