J'ai un fichier journal contenant des statistiques de différents serveurs. Je sépare les statistiques de ce fichier journal en utilisant regex seulement. J'essaie de capturer l'utilisation du processeur à partir du processus en cours. Pour SunOS, j'ai ci-dessous sortie:Comment puis-je extraire une valeur de valeurs séparées par des virgules en Perl?
process,10050,user1,218,59,0,1271M,1260M,sleep,58.9H,0.02%,java
Ici, le% CPU est au champ 11 si nous séparons par des virgules (,). Ce champ est signe%, ce qui est unique et je peux utiliser ci-dessous regex Pour obtenir cette valeur:
regex => q/^process,(?:.*?),((?:\d+)\.(?:\d+))%,java$/,
Pour le système linux je ci-dessous sortie:
process,26190,user1,20,0,1236m,43m,6436,S,0.0,1.1,0:00.00,java,
Ici, l'utilisation du processeur est à 10 colonne mais sans signe% et il n'y a rien d'unique que je puisse voir avec ce champ.
Quel motif regex dois-je utiliser pour obtenir cette valeur?
@brian: votre édition a complètement changé mes questions. Ce n'est pas aussi simple que d'extraire des valeurs de csv. – Space
Qu'est-ce qui est différent à ce sujet? Dans celui que vous voulez le 11ème champ et l'autre vous voulez le 10ème. Il n'y a rien de plus compliqué à ce sujet à moins que vous ne nous disiez quelque chose. Vous êtes obsédé par la solution regex, qui vous donne le problème XY: http://www.perlmonks.org/index.pl?node_id=542341 –
Cette question est claire. +1 pour contrer downvote – Mike