2015-03-05 1 views
0

La commande Unix "comm" trouvera des lignes communes/uniques dans deux fichiers à condition que les deux fichiers soient triés en ordre lexical. Supposons que j'ai deux fichiers triés avec "sort -nr". Existe-t-il un programme similaire à qui fonctionne sur ces fichiers?Comm avec ordre de tri alterné

Bien sûr, je pourrais toujours utiliser les fichiers lexicalement, les comm et puis lancer les versions triées lexicalement, mais c'est inefficace.

Il semble qu'il serait facile d'écrire un programme de type comm qui fait cela, alors je suppose qu'il en existe un?

Répondre

0

Aucun programme de ce type n'existe. Le tri numérique est significativement différent du tri lexical, donc ce serait un gros ajout à comm lui-même. Compte tenu de la philosophie Unix de composer de petits outils qui font une chose bien, et puisque cela est déjà facilement réalisable avec les outils existants, je parierais qu'il n'y avait tout simplement jamais assez besoin de justifier une version numérique ou une option.

Étant donné deux fichiers all et even contenant les numéros triés inverse-vous attendez, cela ne vient la bonne chose:

comm -12 <(sort all) <(sort even) | sort -rn