Classificar com padrão personalizado?

Classificar com padrão personalizado?

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 awkprecede cada linha com a ocorrência da linha como um número para sortclassificar como seu primeiro key (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 awkSPC padrão de ' e sortda 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.

informação relacionada