
Em vez de classificar com base em az, é possível classificar com base na ocorrência?
Exemplo de tarefa desejada,
Entrada =
Example
Example
Hello
Hello
Input
Input
List
List
World
World
...
Saída desejada =
Example
Hello
Input
List
World
Example
Hello
Input
List
World
...
Então neste cenário ele pega a primeira ocorrência de cada linha e as coloca em ordem, depois a segunda ocorrência de cada linha e as coloca em ordem até que não haja mais ocorrências
Responder1
Você sempre pode usar a abordagem decorar - classificar - não decorar:
<input awk -v OFS=: '{print ++n[$0], $0}' |
sort -t: -k1,1n -k2 |
cut -d: -f2-
Where awk
precede cada linha com a ocorrência da linha como um número para sort
classificar como seu primeiro k
ey (ordem numérica) e a linha original como a segunda chave (ordem de agrupamento de localidade padrão).
Aqui, usando :
como separador em vez do awk
SPC padrão de ' e sort
da transição padrão de um não vazio para um branco como acontece com esse padrão, o SPC seria incluído na segunda chave, o que pode (improvável) ter um impacto na classificação.