Tri d'un fichier par rapport à un CHAR d'un champ.

Résolu/Fermé
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - 12 avril 2023 à 13:49
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 - 12 avril 2023 à 15:30

Bonjour,

Je cherche depuis ce matin mais je bloque. 

J'ai un fichier avec:

SERV1;SQL; SLA, DATA1

SERV2; vSphere VM; SLA; DATA2

SERV3; Windows, SLA, DATA3

SERV4; vSphere VM; SLA; DATA4

J'aimerais  trier le fichier et avoir en début de fichier toutes les lignes dans le second champs est vSphere VM

soit:

SERV2; vSphere VM; SLA; DATA2

SERV4; vSphere VM; SLA; DATA4

SERV3; Windows, SLA, DATA3

SERV1;SQL; SLA, DATA1

Merci de votre aide. 
Windows / Chrome 111.0.0.0

A voir également:

3 réponses

dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
12 avril 2023 à 15:30

hellol

$ awk -F ';' '!NF {next } $2 ~ /vSphere/ {print $0; next} {a[++n]=$0} END {for (x in a)print a[x]}' fichier 
SERV2; vSphere VM; SLA; DATA2
SERV4; vSphere VM; SLA; DATA4
SERV1;SQL; SLA, DATA1
SERV3; Windows, SLA, DATA3
$
3
jee pee Messages postés 39745 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 mai 2024 9 191
12 avril 2023 à 14:32

Bonjour,

Tri signifiant ordre alpha ou numérique croissant ou décroissant ne répond pas à cette particularité de selectionner le 1er.

On peut alors traiter les données en 2 fois :

grep 'vSphere' fic6.txt|sort -t';' -k2 ; grep -v 'vSphere' fic6.txt|sort -t';' -k2

SERV2; vSphere VM; SLA; DATA2
SERV4; vSphere VM; SLA; DATA4
SERV1;SQL; SLA, DATA1
SERV3; Windows, SLA, DATA3

1
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024
12 avril 2023 à 15:04

Bonjour, 

j'avais envisagé cette possibilité mais je pensais pouvoir le faire one shot avec un awk. 

Merci!

0