j'ai le sentiment qu'ils sont sacrifiés par une hiérarchie complétement déconnectés de la réalité.
Malhereusement ce n'est pas le propre de l'éducation nationale, c'est ce qui se passe dans toute société ou il y a un niveau hierarchique trop ense (chef puis chef du chef, puis chef du chef du chef ….). Le plus triste c'est que ce sont les enfants qui en subissent les conséquences dans le cas de l'EN. Mais c'est je pense un problème culturel français.
Tu as besoin du bios pour initialiser le mode 13h. Je ne pense pas qu'il y ait d'autres moyens de faire (si ce n'est aller voir comment cette initialisation est codée, ou voir s'il esiste sur le net du code pour le faire).
Pour info: en mode texte, tu dois écrire à l'adresse 0B800:0000, sur 2 octets. Le premier est l'octet correspondant à ton caractère, le second est celui correspondant à son attribut.
Si tu veux tracer des pixels ou des lignes il faut passer en mode graphique (mode 13h: http://www.brackeen.com/vga/basics.html#5 ). Par contre je ne suis pas sur que tu puisses écrire du texte simplement, et le premier lien que j'ai donné devrait t'en dire plus.
même avec un Linux léger les applications restent gourmandes, surtout la navigation web
C clair, c'est pour ça qu'en général je ne conseille pas d'installer Linux sur une trop vieille machine pour une utilisation tel que faite aujourd'hui. En machine de secours, d'appoint ou pour se familiariser avec Linux pourquoi pas, mais pour tou les jours il vaut mieux oublier.
Celà dit, en boostant un peu la quantité de RAM il peut arriver a qqchose d'utilisablE;
Oh le naïf. Penses-tu vraiment que c'est aussi simple que ça ?
ŒBen c le principe d'une bibliotrhèque: développer du code réutilisable par d'autres pour que les autres n'aient pas à le faire.
Rien que la bibliothèque alsa nécessite plusieurs appels de fonctions pour juste récupérer le volume courant.
Tiens tu m'apprends un truc. Quand on programme, on doit faire appel a plusieurs appels de fonctions pour effectuer une action. Je pensais qu'une seule fonction par tache était nécessaire.
Pour ma part, j'en ai jamais fait beaucoup, mais tout paquet que j'ai créé hors distribution ne s'est jamais installé dans /usr/bin ou dans /usr. J'ai toujours mis ça dans /usr/local (sauf pour freebsd ou j'ai parfois fait autrement), ou dans /opt, avec éventuellement un wrapper dans /usr/local/bin. La raison est simple : je ne veux pas interférer avec les distributions existantes. Je ne veux pas enbtrer en collision avec des fichiers/éléments de la distribution.
Merci pour la réponse. J'avais déjà regardé Jack, et personellement je préfère largement cette approche. Mais comme tu le dis c'est pas forcément toujours simple (les applis ne fonctionnent pas toujours bien avec).
Petite question, plutôt que de se battre avec Pulseaudio ou Jack, pourquoi ne pas définir une interface commune que toutes les applis utiliseraient ? Ainsi, que ce soit PulseAudio ou Jack, ou autre, l'appli enverrait vers un truc, et lez truc se chargerait de faire comme il veut. Ah et qu'on me dise pas 't'as qu'a utiliser les libs pulseaudio' : je préfèrerais un truc 'neutre'.
C'est de la facturation, apres tu retires les charges et frais divers, le prix d'un comptable pour gerer ta compta. Si tu es porté par une boite, elle prend sa commission au passage. Je ne suis pas indep, mais quand je me suis renseigné pour l'etre, j'ai cru comprendre qu'en net ça te fait un salaire de l'ordre de la moitié de ce que tu factures (peut être un peu moins). Mais des gens qui sont indépendants seront plus précis. Ah et ne pas oublier que ça parait beaucoup, mais quand tu es indépendant, faut aussi compter gérer les vacances (c'est à dire économiser quand tu es facturé parce que lorsque tu ne bosses pas l'argent ne tombe pas), et l'intercontrat.
Donc au final, oui c'est plutot bien payé, mais c'est pas 12000 euros par mois qui rentrent dans ta poche. Je dirais plutôt que c'est un peu plus de la moitié en moins si tu prends des vacances.
J'arrive pas à faire mon exercice (ou j'ai la flemme de le faire), voici l'énoncé. Merci.
Si tu t'attends à ce que quelqu'un le fasse à ta place, il n'y aura pas de problème, mais ça ne sera pas gratuit. Sinon, poste ce que tu as commencé à faire et on t'aidera. En effet, il arrive régulièrement que des gens qui ont un problème avec leur exercice viennent ici pour demander que quelqu'un le fasse à leur place (ou alors ils formulent leur demande maladroitement). En général il y a toujours une réponse favorable à cette demande, mais contre rémunération. Certains trouvent ça malhonnête, ou les tarifs prohibitifs, mais ce n'est pas le point de vue de tout le monde. En effet, dans la vie, lorsqu'on ne sait pas faire quelque chose, soit on apprend à le faire, soit on le fait faire par quelqu'un. Et quand on le fait faire par quelqu'un, souvent ce n'est pas gratuit. Alors certes les tarifs demandés peuvent paraître élevés, mais en général ils sont conformes à ce qui se fait dans le milieu de la prestation informatique. Parce que oui, demander à quelqu'un d'écrire du code pour résoudre un problème, c'est une prestation informatique. Et oui, c'est un métier qui aujourd'hui est plutôt bien rémunére. Alors si toi aussi tu veux gagner plein de thunes, et facturer plus de 75 euros de l'heure un bête hello world ou un truc un peu plus compliqué, commence par essayer de faire ton travail. Relis l'énoncé. En posant ta question, essaie de le reformuler comme tu l'as compris. Si tu n'as rien compris dis-le "j'ai pas compris ce que je dois faire. Quelqu'un peut-il me l'expliquer?" (si possible en indiquant le chapitre du cours que tu examines, ça peut aider à resituer le contexte). Si tu as compris l'énoncé, mais que tu n'arrive pas à coder, relis tes cours. Ecris quelque chose même si c'est faux, et poste ton code. Tu trouveras alors quelqu'un qui sera en mesure de t'expliquer ce que tu as bien fait et ce qui ne va pas. En agissant comme ça tu pourras comprendre, et avec le temps, tu pourras à ton tour demander à être bien rémunéré pour écrire du code.
Voila. J'ai passé moins d'1 heure à le faire, ça te coutera 75 euros (toute heure commmencée est dûe) ;)
Pas forcément, je peux avoir envie de la bypasser.
D'autant plus que si on utilise plusieurs applications audio, on a pas envie de se prendre la tête à rediriger chacune d'entre elle via les options / configuration / interfaces graphique de celles ci.
Ben si on peut en avoir l'envie.
Sinon on implémente la même fonctionnalité 1000 fois dans toutes les applications qui font de l'audio et on a donc 1000 fois une implémentation avec possibles bugs à résoudre et maintenir.
Ah, et les bibliothèqies, c'est fait pour les chiens ?
Tiens sinon une question que je me pose … Peut-on avoir sur une mahines deux instances de serveur pulseaudio qui redirigerait les sons vers deux hardwares différents ? Pas 1 serveur qui gère tout, mais la possibilité d'avoir 1 serveur par carte son par exemple (c'est pas anodin comme question, je pourrais avoir besoin de ça un de ces 4).
il y aura certainement des gens malhonnêtes pour te proposer de le faire à ta place à des prix non raisonnables.
Malhonêtes, je ne pense pas. Prix raisonnables, faut voir le TJM d'un indépendant. Tu trouves peut-être ça malhonnête mais en même temps c'est assez formateur: si tu veux que quelqu'un fasse auelque chose à ta place, tu le payes. C'est valable pour tout dans la vie. Et au final bien souvent, sur le long terme, ça coute moins cher de se prendre en main et d'apprendre à faire que de faire faire par quelqu'un.
Mes tarifs sont en ce moment de 75 euros de l'heure, toute heure commencée doit être payée (une facturation à 600 euros la journée c pas délirant dans le milieu. Et faut savoir que le demandeur, s'il bosse un peu, il pourrait en tant qu'independant se faire facturer à un taux journalier plus imortant encore).
Ensuite l'operateur ~ permet de chercher une expression régulière dans une chaine. $0 représente l'enregistrement courant (dans notre cas, la ligne en cours de traitement).
Personnellement je préfère cette façon de faire à la première, elle évite de s'emmeler les pinceaux dans la gestion des quotes.
for fn in /var/www/cgi-bin/LPAR_MAP/*; do
awk -F',|;' 'NR==1 { print "FILENAME: " FILENAME }
/'$ma_variable'/ {
...
En gros tu refermes ta quote pour que ta variable soit interprétée par le shell, et tu la réouvres ensuite pour continuer à entrer tes instructions pour awk.
Il y a d'autres méthodes mais celle-ci me parait la plus simple.
Merci à toi pour avoir soumis ce problème ici (ça m'a amusé de t'aider). J'espère cependant que tu ne t'es pas conténté de faire un copier/coller de la commande, mais que tu as bien compris ce que j'ai fait ;). S'il y a des zones d'ombre, n'hésite pas à demander.
d'apres les exemples données precedemments on peut evidemment faire mieux, en une seule ligne de awk, mais c'est moins lisible (pour debuter)
Ben non, ça donne surtout de mauvaises habitudes. C'est pas compliqué, lorsqu'on explique, de comprendre que awk est une commande qui traite un fichier ligne par ligne, et qu'on peut mettre des conditions sur les lignes traitées (les blocs BEGIN et END étant eux-même des conditions). Par contre faut juste cesser de prendre les gens qui posent les questions pour des idiots, et avoir à l'esprit qu'ils sont capables de comprendre.
Nous ne jetons pas la pierre aux juges; ce sont des gens frileux dont la carrière est basé sur le fait de ne pas faire de vagues.
Ce ne sont pas les juges que je blame mais le système judiciaire. Je suis d'avis que ces pauvres juges sont sous l'eau, et n'ont pas forcément la possibilité d'accorder le temps nécessaire à l'examen de ce genre d'affaire.
Attention par contre à cette méthode : lorsqu'on utilise des tableaux avec chaines de caractères comme indices, l'ordre d'arrivée des indices dans le tableau n'est pas respecté (on ne sait pas dans quel ordre les indices sont rangés). Ca se voit d'ailleurs lors de l'affichage : il ne se fait pas dans le même ordre que dans les exemples précédents.
Donc vous maintenez que c'est valable de poursuivre un utilisateur qui ne vous a pas re-distribué le soft ?
Ca se défend: Si j'ai bien compris, Orange a pris un soft sous GPL et l'a redistribué sous une autre licence. Or la GPL indique bien qu'outre la mise à disposition des sources, le soft redistribué DOIT être redistribué dans les mêmes conditions que le code source sur lequel il se base (soit GPL). C'est même la base de la licence GPL. Et effectivement, cette décision rique de créer un précédent assez grave pour les devs de softs GPL.
9 ans pour ça … Si 'est bien ça, cet affaire montrerait quand même qu'il y a un GROS problème avec la justice en France.
Awk peut utiliser des chaines de caractères comme indice de tableau. Au lieu d'initialiser un compteur, on peut indexer nos tableaux avec le nom de lpar.
$ awk -F',|;' ' BEGIN {i=0} /MO2PPC/ {$2;RAM[$2]=$5;CPU1[$2]=$6;CPU2[$2]=$7} ' /tmp/toto.txt
La boucle for permet, lorsqu'on l'utilise sur un tableau, de setter la variable de boucle avec l'indice du tableau (on aurait pu le faire d'ailleurs sur le tableau a indice numérique de l'exemple précédent). On va utiliser cette propriété en bouclant sur un des tableaux qu'on a initialisé, et utiliser la variable de boucle pour afficher les éléments des autres tableaux :
$ awk -F',|;' ' /MO2PPC/ {$2;RAM[$2]=$5;CPU1[$2]=$6;CPU2[$2]=$7} END { print "FILENAME/ " FILENAME; for (j in RAM) { print "LPARS: " j; print "RAM: " RAM[j]; print "CPU 1: " CPU1[j]; print "CPU2: " CPU2[j] } }' /tmp/toto.txt FILENAME/ /tmp/toto.txt
LPARS: miaibv246
RAM: 12
CPU 1: 0.5
CPU2: 1
LPARS: miaibv182
RAM: 5
CPU 1: 0.5
CPU2: 1
LPARS: mplaix0122
RAM: 175
CPU 1: 2.3
CPU2: 5
LPARS: mo2vio20a
RAM: 7
CPU 1: 1.0
CPU2: 2
LPARS: mo2vio20b
RAM: 7
CPU 1: 1.0
CPU2: 2
LPARS: miaibv95
RAM: 60
CPU 1: 0.6
CPU2: 4
LPARS: mplaix0306
RAM: 180
CPU 1: 0.5
CPU2: 3
LPARS: oncwasp4
RAM: 15
CPU 1: 0.6
CPU2: 2
LPARS: mplaix0087
RAM: 100
CPU 1: 0.4
CPU2: 4
LPARS: miaibv161
RAM: 60
CPU 1: 1.2
CPU2: 4
LPARS: mplaix0088
RAM: 130
CPU 1: 1.5
CPU2: 11
LPARS: mo2vio21a
RAM: 6
CPU 1: 1.5
CPU2: 3
LPARS: mo2vio21b
RAM: 6
CPU 1: 1.5
CPU2: 3
Pour info awk traite les fichiers ligne à ligne. Nous avons vu qu'on peut conditionner les traitements effectués sur des lignes en faisant des trucs du genre :
Dans la section BEGIN, certaines variables ne sont pas settées, FILENAME en fait partie (ici je n'affiche que dans la section begin, je n'affiche pas le contenu du fichier ni la fin) :
LA section begin initialise l'index utilisé lors du parsing de chaque ligne du fichier. Cet index sera incrémenté à chaque fois qu'une ligne correspondra à la regexp. Puis à la fin, j'utilise une boucle for, qui aura comme compteur la variable j. Cette boucle va parcourir chaque tableau et afficher chaque valeur, jusqu'à ce que l'index j aura atteint la valeur de l'index i. Autrement dit c une façon de parcourir tout le tableau (mais il y en a d'autres).
[^] # Re: Nostalgie, nostalgie
Posté par totof2000 . En réponse au message impossible d'afficher des pixels via le mode reel. Évalué à 3. Dernière modification le 13 août 2019 à 12:05.
Hello.
Faut pas désespérer …
https://www.seasip.info/VintagePC/cga.html ;)
[^] # Re: Précisions sur l'informatique dans le secondaire.
Posté par totof2000 . En réponse au journal Apprentissage de la programmation : comment moderniser les exercices. Évalué à 3.
Malhereusement ce n'est pas le propre de l'éducation nationale, c'est ce qui se passe dans toute société ou il y a un niveau hierarchique trop ense (chef puis chef du chef, puis chef du chef du chef ….). Le plus triste c'est que ce sont les enfants qui en subissent les conséquences dans le cas de l'EN. Mais c'est je pense un problème culturel français.
[^] # Re: Nostalgie, nostalgie
Posté par totof2000 . En réponse au message impossible d'afficher des pixels via le mode reel. Évalué à 3.
De la doc ici : https://wiki.osdev.org/VGA_Hardware#VGA_Registers
et là une xemple en C: https://files.osdev.org/mirrors/geezer/osd/graphics/modes.c
[^] # Re: Ca fait des années que je n'ai plus fait ça ...
Posté par totof2000 . En réponse au message impossible d'afficher des pixels via le mode reel. Évalué à 2. Dernière modification le 11 août 2019 à 08:59.
Tu as besoin du bios pour initialiser le mode 13h. Je ne pense pas qu'il y ait d'autres moyens de faire (si ce n'est aller voir comment cette initialisation est codée, ou voir s'il esiste sur le net du code pour le faire).
Sinon en plus des liens donnés plus haut:
http://www.rohitab.com/discuss/topic/33530-how-to-switch-to-vga-graphics-mode-without-using-bios-interrupts-in-protected-mode/
# Ca fait des années que je n'ai plus fait ça ...
Posté par totof2000 . En réponse au message impossible d'afficher des pixels via le mode reel. Évalué à 3.
Mais peut-être une piste ici ? :
https://stackoverflow.com/questions/48648548/graphics-mode-in-assembly-8086
Pour info: en mode texte, tu dois écrire à l'adresse 0B800:0000, sur 2 octets. Le premier est l'octet correspondant à ton caractère, le second est celui correspondant à son attribut.
Si tu veux tracer des pixels ou des lignes il faut passer en mode graphique (mode 13h: http://www.brackeen.com/vga/basics.html#5 ). Par contre je ne suis pas sur que tu puisses écrire du texte simplement, et le premier lien que j'ai donné devrait t'en dire plus.
[^] # Re: peut-être changer le lecteur CD
Posté par totof2000 . En réponse au message j'essaie de passer à Linux. Évalué à 3.
C clair, c'est pour ça qu'en général je ne conseille pas d'installer Linux sur une trop vieille machine pour une utilisation tel que faite aujourd'hui. En machine de secours, d'appoint ou pour se familiariser avec Linux pourquoi pas, mais pour tou les jours il vaut mieux oublier.
Celà dit, en boostant un peu la quantité de RAM il peut arriver a qqchose d'utilisablE;
[^] # Re: pas le boulot du lecteur audio
Posté par totof2000 . En réponse au journal Écouter de la musique sous Plasma. Évalué à 3.
ŒBen c le principe d'une bibliotrhèque: développer du code réutilisable par d'autres pour que les autres n'aient pas à le faire.
Tiens tu m'apprends un truc. Quand on programme, on doit faire appel a plusieurs appels de fonctions pour effectuer une action. Je pensais qu'une seule fonction par tache était nécessaire.
[^] # Re: Windows c'est "simple" mais c'est facile
Posté par totof2000 . En réponse au journal Mais pourquoi flatpak ?. Évalué à 2.
Pour ma part, j'en ai jamais fait beaucoup, mais tout paquet que j'ai créé hors distribution ne s'est jamais installé dans /usr/bin ou dans /usr. J'ai toujours mis ça dans /usr/local (sauf pour freebsd ou j'ai parfois fait autrement), ou dans /opt, avec éventuellement un wrapper dans /usr/local/bin. La raison est simple : je ne veux pas interférer avec les distributions existantes. Je ne veux pas enbtrer en collision avec des fichiers/éléments de la distribution.
[^] # Re: pas le boulot du lecteur audio
Posté par totof2000 . En réponse au journal Écouter de la musique sous Plasma. Évalué à 2.
Merci pour la réponse. J'avais déjà regardé Jack, et personellement je préfère largement cette approche. Mais comme tu le dis c'est pas forcément toujours simple (les applis ne fonctionnent pas toujours bien avec).
Petite question, plutôt que de se battre avec Pulseaudio ou Jack, pourquoi ne pas définir une interface commune que toutes les applis utiliseraient ? Ainsi, que ce soit PulseAudio ou Jack, ou autre, l'appli enverrait vers un truc, et lez truc se chargerait de faire comme il veut. Ah et qu'on me dise pas 't'as qu'a utiliser les libs pulseaudio' : je préfèrerais un truc 'neutre'.
[^] # Re: Personne pour le moment
Posté par totof2000 . En réponse au message Diner des philosophes et jeu des bâtonnets. Évalué à 7.
C'est de la facturation, apres tu retires les charges et frais divers, le prix d'un comptable pour gerer ta compta. Si tu es porté par une boite, elle prend sa commission au passage. Je ne suis pas indep, mais quand je me suis renseigné pour l'etre, j'ai cru comprendre qu'en net ça te fait un salaire de l'ordre de la moitié de ce que tu factures (peut être un peu moins). Mais des gens qui sont indépendants seront plus précis. Ah et ne pas oublier que ça parait beaucoup, mais quand tu es indépendant, faut aussi compter gérer les vacances (c'est à dire économiser quand tu es facturé parce que lorsque tu ne bosses pas l'argent ne tombe pas), et l'intercontrat.
Donc au final, oui c'est plutot bien payé, mais c'est pas 12000 euros par mois qui rentrent dans ta poche. Je dirais plutôt que c'est un peu plus de la moitié en moins si tu prends des vacances.
[^] # Re: Personne pour le moment
Posté par totof2000 . En réponse au message Diner des philosophes et jeu des bâtonnets. Évalué à 7. Dernière modification le 20 juillet 2019 à 20:26.
Une proposition:
J'arrive pas à faire mon exercice (ou j'ai la flemme de le faire), voici l'énoncé. Merci.
Si tu t'attends à ce que quelqu'un le fasse à ta place, il n'y aura pas de problème, mais ça ne sera pas gratuit. Sinon, poste ce que tu as commencé à faire et on t'aidera. En effet, il arrive régulièrement que des gens qui ont un problème avec leur exercice viennent ici pour demander que quelqu'un le fasse à leur place (ou alors ils formulent leur demande maladroitement). En général il y a toujours une réponse favorable à cette demande, mais contre rémunération. Certains trouvent ça malhonnête, ou les tarifs prohibitifs, mais ce n'est pas le point de vue de tout le monde. En effet, dans la vie, lorsqu'on ne sait pas faire quelque chose, soit on apprend à le faire, soit on le fait faire par quelqu'un. Et quand on le fait faire par quelqu'un, souvent ce n'est pas gratuit. Alors certes les tarifs demandés peuvent paraître élevés, mais en général ils sont conformes à ce qui se fait dans le milieu de la prestation informatique. Parce que oui, demander à quelqu'un d'écrire du code pour résoudre un problème, c'est une prestation informatique. Et oui, c'est un métier qui aujourd'hui est plutôt bien rémunére. Alors si toi aussi tu veux gagner plein de thunes, et facturer plus de 75 euros de l'heure un bête hello world ou un truc un peu plus compliqué, commence par essayer de faire ton travail. Relis l'énoncé. En posant ta question, essaie de le reformuler comme tu l'as compris. Si tu n'as rien compris dis-le "j'ai pas compris ce que je dois faire. Quelqu'un peut-il me l'expliquer?" (si possible en indiquant le chapitre du cours que tu examines, ça peut aider à resituer le contexte). Si tu as compris l'énoncé, mais que tu n'arrive pas à coder, relis tes cours. Ecris quelque chose même si c'est faux, et poste ton code. Tu trouveras alors quelqu'un qui sera en mesure de t'expliquer ce que tu as bien fait et ce qui ne va pas. En agissant comme ça tu pourras comprendre, et avec le temps, tu pourras à ton tour demander à être bien rémunéré pour écrire du code.
Voila. J'ai passé moins d'1 heure à le faire, ça te coutera 75 euros (toute heure commmencée est dûe) ;)
[^] # Re: pas le boulot du lecteur audio
Posté par totof2000 . En réponse au journal Écouter de la musique sous Plasma. Évalué à 2. Dernière modification le 20 juillet 2019 à 20:02.
Pas forcément, je peux avoir envie de la bypasser.
Ben si on peut en avoir l'envie.
Ah, et les bibliothèqies, c'est fait pour les chiens ?
Tiens sinon une question que je me pose … Peut-on avoir sur une mahines deux instances de serveur pulseaudio qui redirigerait les sons vers deux hardwares différents ? Pas 1 serveur qui gère tout, mais la possibilité d'avoir 1 serveur par carte son par exemple (c'est pas anodin comme question, je pourrais avoir besoin de ça un de ces 4).
[^] # Re: Personne pour le moment
Posté par totof2000 . En réponse au message Diner des philosophes et jeu des bâtonnets. Évalué à 9.
Malhonêtes, je ne pense pas. Prix raisonnables, faut voir le TJM d'un indépendant. Tu trouves peut-être ça malhonnête mais en même temps c'est assez formateur: si tu veux que quelqu'un fasse auelque chose à ta place, tu le payes. C'est valable pour tout dans la vie. Et au final bien souvent, sur le long terme, ça coute moins cher de se prendre en main et d'apprendre à faire que de faire faire par quelqu'un.
Mes tarifs sont en ce moment de 75 euros de l'heure, toute heure commencée doit être payée (une facturation à 600 euros la journée c pas délirant dans le milieu. Et faut savoir que le demandeur, s'il bosse un peu, il pourrait en tant qu'independant se faire facturer à un taux journalier plus imortant encore).
[^] # Re: Merci !
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 2.
Une autre façon de faire :
for fn in /var/www/cgi-bin/LPAR_MAP/*; do
awk -v var=$ma_variable -F',|;' 'NR==1 { print "FILENAME: " FILENAME }
$0 ~ $ma_variable {
…
L'option -v de awk permet de setter des variables lors de l'appel de la commande :
Ensuite l'operateur ~ permet de chercher une expression régulière dans une chaine. $0 représente l'enregistrement courant (dans notre cas, la ligne en cours de traitement).
Personnellement je préfère cette façon de faire à la première, elle évite de s'emmeler les pinceaux dans la gestion des quotes.
[^] # Re: Merci !
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 2. Dernière modification le 18 juillet 2019 à 13:50.
Hello.
Un truc du genre
En gros tu refermes ta quote pour que ta variable soit interprétée par le shell, et tu la réouvres ensuite pour continuer à entrer tes instructions pour awk.
Il y a d'autres méthodes mais celle-ci me parait la plus simple.
[^] # Re: difficile ....
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 2.
Et pourquoi pas un -exec plutôt qu'un while read file ?
[^] # Re: Merci !
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 2.
Merci à toi pour avoir soumis ce problème ici (ça m'a amusé de t'aider). J'espère cependant que tu ne t'es pas conténté de faire un copier/coller de la commande, mais que tu as bien compris ce que j'ai fait ;). S'il y a des zones d'ombre, n'hésite pas à demander.
[^] # Re: simplifier la logique
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 2.
Tu as parfaitement raison.
[^] # Re: simplifier la logique
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 3.
Ben non, ça donne surtout de mauvaises habitudes. C'est pas compliqué, lorsqu'on explique, de comprendre que awk est une commande qui traite un fichier ligne par ligne, et qu'on peut mettre des conditions sur les lignes traitées (les blocs BEGIN et END étant eux-même des conditions). Par contre faut juste cesser de prendre les gens qui posent les questions pour des idiots, et avoir à l'esprit qu'ils sont capables de comprendre.
[^] # Re: Ici Entr'ouvert (enfin un bout de)
Posté par totof2000 . En réponse au journal Une violation de licence est une rupture de contrat et pas une contrefaçon (en France). Évalué à 3.
Ce ne sont pas les juges que je blame mais le système judiciaire. Je suis d'avis que ces pauvres juges sont sous l'eau, et n'ont pas forcément la possibilité d'accorder le temps nécessaire à l'examen de ce genre d'affaire.
[^] # Re: difficile ....
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 2. Dernière modification le 16 juillet 2019 à 21:02.
Attention par contre à cette méthode : lorsqu'on utilise des tableaux avec chaines de caractères comme indices, l'ordre d'arrivée des indices dans le tableau n'est pas respecté (on ne sait pas dans quel ordre les indices sont rangés). Ca se voit d'ailleurs lors de l'affichage : il ne se fait pas dans le même ordre que dans les exemples précédents.
[^] # Re: Ici Entr'ouvert (enfin un bout de)
Posté par totof2000 . En réponse au journal Une violation de licence est une rupture de contrat et pas une contrefaçon (en France). Évalué à 5. Dernière modification le 16 juillet 2019 à 20:53.
Ca se défend: Si j'ai bien compris, Orange a pris un soft sous GPL et l'a redistribué sous une autre licence. Or la GPL indique bien qu'outre la mise à disposition des sources, le soft redistribué DOIT être redistribué dans les mêmes conditions que le code source sur lequel il se base (soit GPL). C'est même la base de la licence GPL. Et effectivement, cette décision rique de créer un précédent assez grave pour les devs de softs GPL.
9 ans pour ça … Si 'est bien ça, cet affaire montrerait quand même qu'il y a un GROS problème avec la justice en France.
[^] # Re: difficile ....
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 3.
Voici une autre façon de faire.
Awk peut utiliser des chaines de caractères comme indice de tableau. Au lieu d'initialiser un compteur, on peut indexer nos tableaux avec le nom de lpar.
La boucle for permet, lorsqu'on l'utilise sur un tableau, de setter la variable de boucle avec l'indice du tableau (on aurait pu le faire d'ailleurs sur le tableau a indice numérique de l'exemple précédent). On va utiliser cette propriété en bouclant sur un des tableaux qu'on a initialisé, et utiliser la variable de boucle pour afficher les éléments des autres tableaux :
[^] # Re: difficile ....
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 4. Dernière modification le 16 juillet 2019 à 20:25.
La deuxième méthode …
Pour info awk traite les fichiers ligne à ligne. Nous avons vu qu'on peut conditionner les traitements effectués sur des lignes en faisant des trucs du genre :
On peut aussi effectuer certaines actions avant que la première ligne du fichier soit parsée et après que la dernière ligne du fichier ait éé parsée:
Exemple, nous allons afficher un texte avant de parser le fichier, afficher chaque ligne du fichier et afficher un texte après parsing :
Dans la section BEGIN, certaines variables ne sont pas settées, FILENAME en fait partie (ici je n'affiche que dans la section begin, je n'affiche pas le contenu du fichier ni la fin) :
Par contre dans la section END:
De plus, awk permet de setter des variables en cours de parsing. On peut utiliser des tableaux:
LA section begin initialise l'index utilisé lors du parsing de chaque ligne du fichier. Cet index sera incrémenté à chaque fois qu'une ligne correspondra à la regexp. Puis à la fin, j'utilise une boucle for, qui aura comme compteur la variable j. Cette boucle va parcourir chaque tableau et afficher chaque valeur, jusqu'à ce que l'index j aura atteint la valeur de l'index i. Autrement dit c une façon de parcourir tout le tableau (mais il y en a d'autres).
[^] # Re: difficile ....
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 4. Dernière modification le 16 juillet 2019 à 19:56.
Ah la boucle for serait plutot du genre :