J'ai essayé un certain nombre de solutions de Stack Overflow, mais sans résultat favorable. J'ai 2 fichiers et je veux supprimer les entrées de file1
qui sont mentionnés dans file2
.Diff entre 2 fichiers (awk)
Fichier1
1,[email protected],9
9,[email protected],1
8,[email protected],6
2,[email protected],1
15,[email protected],3
6,[email protected],1
Fichier2
[email protected]
[email protected]
[email protected]
[email protected]
Résultat
1,[email protected],9
8,[email protected],6
2,[email protected],1
6,[email protected],1
Pourriez-vous me aider s'il vous plaît? Ma tentative avortée:
awk -F',' 'NR==FNR{c[$1]++;next};c[$2] > 0' file2 file1
L'une ou l'autre de ces réponses est la bonne réponse ('awk -F, 'FNR == NR {a [$ 0]; next}! ($ 2 dans a)' File2 File1' étant l'évidence/commune/idiomatique). Si elles ne fonctionnent pas pour vous alors vous avez probablement control-Ms dans votre fichier d'entrée alors utilisez 'dox2unix' ou similaire pour les supprimer. –
Si vous n'avez pas l'utilitaire dos2unix, essayez les commandes (tr -d '\ r' temp_Input_file && mv temp_Input_file Input_file). –
RavinderSingh13
@ RavinderSingh13 Merci beaucoup pour cette solution, elle fonctionne parfaitement, je pense que c'est la meilleure réponse. – Anouar