2017-05-02 3 views
0

J'ai un fichier txt. Je voudrais supprimer toute la ligne en double.Linux: supprimer la ligne en double

J'ai essayé ces derniers, mais n'a pas fonctionné

sort -ur file.txt 

ou

uniq -D -f 2 file.txt 

file.txt

34.78.54.21 websrv1 nameweb 
34.78.54.21 nameweb 

J'ai juste besoin d'une ligne

+2

Ce fichier ne contient pas de lignes dupliquées. De quoi avez-vous besoin exactement? –

+2

s'il vous plaît ajouter la sortie attendue et expliquer sur quelle base la duplication est définie ... ajouter quelques cas d'entrée aiderait aussi bien – Sundeep

+0

@Sundeep je dois trier l'adresse IP –

Répondre

1

À partir de votre entrée I supposez que vous parlez t o le premier champ (34.78.54.21) en tant que doublon. Si vous voulez juste garder la première occurrence de chaque numéro, puis cela fonctionne pour vous:

awk '!a[$1]++' file.txt 

Sortie:

34.78.54.21 websrv1 nameweb 

Cette commande semble si 1 $ n'est pas comme une clé dans le tableau. Si ce n'est pas le cas, il sera ajouté au tableau et l'impression par défaut aura lieu. Pour la ligne suivante $ 1 est dans le tableau et le tout évaluera à faux et ne pas imprimer.