Porshell um revestimento:
$sep=","; gc infile.txt |% {$line=($_ -split $sep)|% {$_.trim()}|sort;$line -join $sep} >outfile.txt
Notas:
1. Usa a sintaxe PS 2 join
, que é mais compacta.
2. Usar ,
como separador (como mostrado) removerá todos os espaços iniciais / finais das palavras. Isso é o que eu suponho do contexto que você quer, mas se eu pegar sua descrição literalmente, eles devem ser mantidos . Se você desejar, remova |% {$_.trim()}
(mas, em seguida, sort
não funcionará "como esperado" para o seu exemplo com espaços à esquerda)
3. Você pode usar ,<space>
(ou qualquer outra coisa, como matéria) como separador de saída ( -join ", ")
, isso normalizará qualquer entrada mista (com ou sem espaços depois da vírgula) para a que você selecionou.
4. A codificação padrão para saída no PS é Unicode (UTF-16). Você pode alterá-lo usando | out-file -Encoding <encoding_type>
em vez de redirecionamento >
se precisar controlar isso. Para ver as codificações disponíveis, execute help out-file -full