|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() ![]() Inscription : juin 2009 Messages : 770 ![]() |
Bonjour,
J'ai un fichier contenant plusieurs (séparées par un retour chariot donc). Chaque ligne est constituée de plusieurs champs, le séparateur de champ étant | (barre verticale). Certains champs peuvent être vides. Mon objectif : compter le nombre de champs, y compris les champs vides. J'ai d'abord essayé avec une commande AWK (inspirée ce qu'il y a ici) : Citation:
Je me suis donc mis en tête de compter le nombre de caractères | par ligne, mais ce n'est pas très fructueux... Je pense en être pas loin avec ça : Citation:
Si quelqu'un a une idée pour m'aiguiller, je serai très content ! ![]() Merci d'avance !
__________________
Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^ Pour vos problèmes d'embarqué, utilisez le forum dédié ! |
||
|
|
10
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : février 2011 Messages : 83 ![]() |
Code :
awk '{ x=0; x+=gsub("\\|",""); print x }' conversion.txt
__________________
Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee "Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley) clean |
|
|
20
|
|
|
#3 | |||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
Citation:
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|||
|
|
20
|
|
|
#4 | ||
|
Membre Expert
![]() ![]() Inscription : juin 2009 Messages : 770 ![]() |
Bonjour,
Vos deux solutions donnent le même résultat. C'est déjà bien Oui, quelque chose doit m'échapper. Je compte à la main, je ne trouve pas le même nombre que la commande. Je ne pense pourtant pas être fou ou aveugle. Voici l'un des lignes du fichier par exemple : Citation:
Vos lignes me donnent : Citation:
__________________
Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^ Pour vos problèmes d'embarqué, utilisez le forum dédié ! |
||
|
|
10
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Pour la solution de FRUIT, il faut initialiser la variable x à 1 et non pas à 0
Code :
awk '{ x=1; x+=gsub("\\|",""); print x }'
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
10
|
|
|
#6 |
|
Membre Expert
![]() ![]() Inscription : juin 2009 Messages : 770 ![]() |
Euh....Quand je dis que quelque chose m'échappe, c'est par rapport à la différence entre mon compte visuel et le compte des lignes de commandes ; mais pas entre la différence entre vos deux lignes ! Tu comptes les champs, et FRUIT les séparateurs de champs, j'avais tilté
Non, mais je voudrais savoir pourquoi je compte 25/26 et que vos lignes trouvent 22/23
__________________
Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^ Pour vos problèmes d'embarqué, utilisez le forum dédié ! |
|
|
01
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
le classique oubli, sur le comptage numéraire qui commence à 1 au lieu de zéro...
me serai fait avoir aussi moi ...
|
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Change de lunettes
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
10
|
|
|
#9 | |
|
Membre éclairé
![]() Inscription : février 2011 Messages : 83 ![]() |
Ceci dit moi je répondais au titre du thread qui est :
Citation:
J'aurais du répondre au message au temps pour moi.
__________________
Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee "Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley) clean |
|
|
|
20
|
|
|
#10 |
|
Membre éclairé
![]() Inscription : février 2011 Messages : 83 ![]() |
En ce qui concerne la commande de zipe31 cela pourrait éventuellement s'expliquer par une version de awk différente, ou bien un alias sur awk avec une option qui omet les champs vides...
Pour ce qui est de ma commande c'est quand même beaucoup plus bizarre.
__________________
Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee "Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley) clean |
|
|
10
|
|
|
#11 | ||||
|
Membre Expert
![]() ![]() Inscription : juin 2009 Messages : 770 ![]() |
toto.txt étant un fichier où je copie la ligne depuis mon précédent post sur ce forum...
Code :
![]() Si je tape awk dans ma console, j'obtiens : Code :
En revanche, quand je tape alias, il n'y a aucune trace de awk....
__________________
Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^ Pour vos problèmes d'embarqué, utilisez le forum dédié ! |
||||
|
|
10
|
|
|
#12 | ||
|
Membre éclairé
![]() Inscription : février 2011 Messages : 83 ![]() |
Ca dit quoi ?
Tu es sur quel type de système ? Moi ça dit : Ok, ça doit être un problème d'encodage de caractères, si je copie-colle ta ligne j'ai aussi : Code :
Exemple là il manque une barre et le dollar déjà : Entre "Fermé" et "$DATEDUJOUR"
__________________
Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee "Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley) clean |
||
|
|
10
|
|
|
#13 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
L'exemple de ligne que tu as donné plus haut et le contenu de ton fichier toto.txt sont différents
Normal que les résultats diffèrent Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
10
|
|
|
#14 |
|
Membre Expert
![]() ![]() Inscription : juin 2009 Messages : 770 ![]() |
La version de awk est 3.15. Le système est Red Hat (mais je n'en connais pas la version).
Effectivement, je n'avais pas vu que des barres souhaitaient lors du copié-collé ! J'utilise vim comme éditeur (via Putty), y a t-il un moyen de ne pas avoir ce remplacement barbare des caractères ? Désolé pour le dérangement Et merci pour votre aide !
__________________
Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^ Pour vos problèmes d'embarqué, utilisez le forum dédié ! |
|
|
10
|
|
|
#15 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Citation:
Sinon avec la commande : Citation:
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
10
|
|
|
#16 | |
|
Membre Expert
![]() ![]() Inscription : juin 2009 Messages : 770 ![]() |
Citation:
__________________
Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^ Pour vos problèmes d'embarqué, utilisez le forum dédié ! |
|
|
|
10
|
Copyright © 2000-2012 - www.developpez.com