Efetivamente, o que você deseja fazer é iterar sobre cada campo e "ativar" a impressão com uma variável se o resultado for encontrado. Assim, o que você precisa é uma variável de sinalização e loop:
$ cat file.txt
string1 string2 string3 string4 string5 string6
string3 string1 string2 string4 string5 string6
string6 string3 string2 string4 string1 string5
$ awk '{flag=0;for(i=1;i<=NF;i++){ if($i=="string2") flag=1; if($i=="string6") flag=0; if(flag)printf "%s%s",$i,FS;};print"";}' file.txt
string2 string3 string4 string5
string2 string4 string5
string2 string4 string1 string5
O que acontece aqui é que todo o bloco de código será executado para cada linha. Em cada linha estamos iterando do primeiro campo para o último. Inicialmente, definimos a variável flag como 0 e, em seguida, examinamos cada campo. Se o campo contiver a "string2" desejada, o sinalizador será definido como 1 e se for "string6" (que é o único quando queremos parar) - o sinalizador será definido como 0; finalmente, se a instrução verificará se o sinalizador está configurado e imprime o campo atual anexado ao separador de campo (representado pela variável FS). Depois de tudo ter sido impresso, também inserimos uma nova linha via comando print ""
.
No caso de você ter linhas sem correspondência, o comando acima imprimirá linhas em branco. Você pode atenuar isso por meio da adição do padrão de pesquisa, que limitará a execução do bloco de códigos somente quando houver um padrão encontrado na string:
$ cat file.txt
string1 string2 string3 string4 string5 string6
blah blah
string3 string1 string2 string4 string5 string6
string6 string3 string2 string4 string1 string5
$ awk '$0~"string2"{flag=0;for(i=1;i<=NF;i++){ if($i=="string2") flag=1; if(flag)printf "%s%s",$i,FS;};print"";}' file.txt
string2 string3 string4 string5 string6
string2 string4 string5 string6
string2 string4 string1 string5
Como alternativa, podemos usar uma variável extra com o mesmo resultado:
$ awk '{j=0;f=0;for(i=1;i<=NF;i++){if($i=="string2"){j=1;f=1};if(f)printf "%s%s",$i,FS;};if(j)print"";}' file.txt
string2 string3 string4 string5 string6
string2 string4 string5 string6
string2 string4 string1 string5