Isso funciona no meu Debian:
sed '1 ! s/^\[/\x00\[/g' | sort -z | tr -d "sed '1 ! s/^\[/\x00\[/g' | sort -z | tr -d "%pre%"
"
Para trabalhar com arquivo (s), use redirecionamento (s), por exemplo. { sed … ; } <input.txt >output.txt , em que sed … é o comando inteiro.
O procedimento é o seguinte:
-
sedinsere um caractere nulo antes de cada[que está no início de uma linha, a menos que a linha seja a primeira. Desta forma, os caracteres nulos separam os perfis. -
sort -zusa esses caracteres nulos como separadores, então classifica perfis inteiros, não linhas separadas. -
trexclui caracteres nulos.