Usando awk
, armazene os campos em variáveis. Quando o marcador de registro for alcançado, escreva os campos no arquivo apropriado (usando o nome do autor).
-F:
especifica que os campos são delimitados em ":"
Esta linha $1 ~ /author/ { author=$2 }
se o primeiro campo de uma linha for "autor" e depois armazenará o valor na variável de autor. Isso é necessário, pois deve haver um autor chamado arquivo para gravar o registro.
Usando substr
() para extrair os primeiros cinco caracteres, se o início do marcador de registro "=====" for encontrado, os dados (armazenados na variável rec
) serão gravados no arquivo de autor apropriado .
awk -F: '
$1 ~ /author/ { author=$2; }
{
if (substr($1,0,5) == "=====" && author != "") {
print rec >> (author".txt")
rec=$0; author=""
}
else
rec=rec "\n" $0
}
END { if (author != "") print rec >> (author".txt") }
' authors.txt