Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/07/2017, à 13:16

MINYA

Ajout ligne entre des données de colonnes semblables avec awk

Bonjour, je souhaiterai séparer les lignes dont une colonne contient des informations semblables

Exemple , ici je voudrais séparer mon fichier en fonction de la première colonne

    
tata xoxo 8989
tata baba 89
tata bob 55 
toto roro 66
toto soso 12
titi wowo 36
titi nono 77 
titi bobo 47 
titi popo 12

donc le fichier de sortie, je le voudrais ainsi :

séparateur1
tata xoxo 8989
tata baba 89
tata bob 55 
séparateur2
toto roro 66
toto soso 12
séparateur3
titi wowo 36
titi nono 77 
titi bobo 47 
titi popo 12

Merci


Peace

Hors ligne

#2 Le 04/07/2017, à 13:58

credenhill

Re : Ajout ligne entre des données de colonnes semblables avec awk

hello

$ awk '!t[$1]++ {print "séparateur" ++n} {print}' fichier
séparateur1
tata xoxo 8989
tata baba 89
tata bob 55 
séparateur2
toto roro 66
toto soso 12
séparateur3
titi wowo 36
titi nono 77 
titi bobo 47 
titi popo 12

Dernière modification par credenhill (Le 04/07/2017, à 13:59)

Hors ligne

#3 Le 04/07/2017, à 14:06

MINYA

Re : Ajout ligne entre des données de colonnes semblables avec awk

Merci beaucoup, c'est exactement ce que je veux, comment je peux faire pour savoir en même temps le nombre de lignes qu'il y a entre chaque séparateur ? J'en aurais besoin pour le calcul d'une moyenne.

Encore merci


Peace

Hors ligne

#4 Le 04/07/2017, à 15:08

credenhill

Re : Ajout ligne entre des données de colonnes semblables avec awk

$ awk '!t[$1]++ {if(++a>1)print t[t2[a-1]], "lignes"; print "séparateur" ++n} {print; t2[a]=$1} END {print t[$1], "lignes"}' fichier
séparateur1
tata xoxo 8989
tata baba 89
tata bob 55 
3 lignes
séparateur2
toto roro 66
toto soso 12
2 lignes
séparateur3
titi wowo 36
titi nono 77 
titi bobo 47 
titi popo 12
4 lignes

Hors ligne