Que tal:
awk '/name/{n+=1}{print > "file_"n".txt"}'
Que produzirá file_1.txt
, file_2.txt
... etc
Eu gostaria de percorrer as linhas entre a mesma ocorrência de um padrão e, em seguida, salvar cada linha correspondente em um arquivo diferente. Por exemplo, eu tenho isso:
name
aaa
bbb
bbb
ccc
name
aaa1
bbb1
ccc1
name
...
Eu gostaria de ter
name
aaa
bbb
bbb
ccc
no arquivo1
name
aaa1
bbb1
ccc1
no arquivo 2 e assim por diante.
Eu tentei com uma inversão de flag no awk assim:
awk '/^name/ {flag=!flag; next} flag {print}'
mas não estou conseguindo o que quero.
Você tem alguma sugestão para fazer isso?
Você também pode usar o "csplit" para esse fim, como em:
csplit yourfile -s -n 1 -f file_ '%name%' '/name/' '{*}'
Isso produzirá os arquivos "file_1", "file_2", etc.