while read -r tag line; do
printf '%s\n' "$line" >"$tag".txt
done <text.in
Quando você lê duas variáveis com read
, a primeira palavra é colocada na primeira variável e o restante da linha é colocada na segunda.
O que constitui uma "palavra" depende do valor de $IFS
. Por padrão, read
dividirá a linha em palavras com base em espaços, tabulações ou novas linhas.
O loop usa isso para enviar a linha (menos a primeira palavra, ou "tag") para um arquivo cujo nome é retirado do início da linha.