J'ai essayé de joindre deux fichiers, mais je ne sais pas pourquoi rejoindre ne m'écoute pas.
Fichier i:
1 afjsadfjasdf
3 afdadsfa
4 afjdsakjfads
5 asdfadsfads
9 asfadsfads
Fichier k:
1 fdasdfadsfads
2 dfasjfadsjfas
3 dsafadsfadsf
4 asfdasdfadsf
9 asdfadsfadsfa
10 adsfadsfa
Ma commande:
join -1 1 -2 1 i k >ik
Et erreur:
join: k:6: is not sorted: 10 adsfadsfa
Pourriez-vous me dire pourquoi cela ne fonctionne pas?
join
faut que les fichiers soient triés de manière lexicale . Selon le dictionnaire, le mot "10" va après "1" mais avant "2". Une autre façon d'écrire votre commande:join -j 1 <(sort i) <(sort k)
--nocheck-order
solution , mais je me demandais toujours pourquoi il se comporte comme ça et il n'y a aucune mention dans les pages de manuel relatives au tri lexical si grâce à ce bit d'information, il est maintenant logique (quelque chose comme l' utilisationsort
sans-n
drapeau, le comportement est le même)