CLI en Console / clic en GUI
y aurait-il des tabous à briser ?
Discussions Libres

marc-andré Membre non connecté
-
- Voir le profil du membre marc-andré
- Inscrit le : 29/09/2015
- Groupes :
Reprise du message précédent
merci pour le bouquin, je l'ai téléchargé;le problème c'est qu'il est assez ancien, mais il y a sûrement beaucoup de chose qui sont toujours vraies;
d'un point de vue pratique, j'aimerais pratiquer au moins une fois, pour voir une chaîne que je pourrais définir ainsi :
1 acquisition de données sur internet
2 filtrage et normalisation, en C ou python ou les deux (le peux que j'ai vu sur cython me semble pas mal)
3 transfert vers un sgbdr
4 recherche des query qui pourraient être intéressantes
5 analyse statistique des vues intéressantes extraites et graphiques
pour la dernière étape, ça pourrait être du python avec pandas et matplotlib ou R;
en tout cas, c'est les soft et le genre d'activités qui me plaisent et avec lesquels j'aimerais bricoler un peu;
pour élargir un peu la conversation sur le code je suis persuadé que l'on est conditionné par ce que l'on fait;
ça fini par faire partie de nous mêmes, de notre identité;
les gens souvent se définissent par leur métier : tel est boulanger, tel autre maçon ou médecin ou ...
d'où d'ailleurs le problème du chômage, c'est que ça prive de revenu certes, c'est embêtant, mais ça prive aussi d'une partie de l'identité;
en tout cas, c'est la leçon de l'existentialisme : tu es ce que tu fais.
donc, sachant que l'on est conditionné par ce qu'on fait, et qu'on devient ce qu'on fait, le choix de tel type de logiciels ou d'activités n'est pas anodin; car ça va finir par influencer notre identité même;
ayant vu pas mal de vidéos en tout genre, c'est ce que j'ai retenu : les gens qui font du python ou du sql, ils ont l'air enthousiastes et sympas; tient je me dis j'aimerais bien leur ressembler; tandis que les vidéos sur Qt ou C++, bof, ça me donne pas trop envie;
tout ça pour me rendre compte que je suis toujours aussi con que quand j'étais au lycée : j'étais bon élève avec les bons pros et mauvais élève avec les "mauvais" profs; avec le recul, c'était quoi les mauvais profs ?
ceux avec qui je n'avais pas de bon contacts et aucune envie de leur ressembler
on ne se refait pas!
HP ProDesk ;
Mageia8 Gnome
Liberté et sécurité sont les arguments classiques pour LINUX. En prime il y a aussi la dignité et la confiance ressentie depuis que je suis sous Mageia
Mageia8 Gnome
Liberté et sécurité sont les arguments classiques pour LINUX. En prime il y a aussi la dignité et la confiance ressentie depuis que je suis sous Mageia

Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
marc-andré :
ayant vu pas mal de vidéos en tout genre, c'est ce que j'ai retenu : les gens qui font du python ou du sql, ils ont l'air enthousiastes et sympas; tient je me dis j'aimerais bien leur ressembler; tandis que les vidéos sur Qt ou C++, bof, ça me donne pas trop envie;
Sauf qu'on ne choisit pas vraiment son langage de programmation. Au cours de mes études j'ai appris majoritairement le Fortran et le C++ et un peu de Python et de Matlab (si tant est qu'on puisse considérer le Matlab comme un langage). Puis en thèse je me suis retrouvé avec un code en C qui était couplé à d'autres logiciels par un script Python donc je me suis concentré sur ces deux langages. Et maintenant je travaille majoritairement avec un logiciel en C++ (mais tellement templaté que ça en devient presque un autre langage) que je lance principalement avec des scripts Python (parce que le bash ça va 5 minutes mais dès que l'on veut faire des choses plus complexes autant utiliser Python). Je travaille aussi sur un logiciel en Fortran.
Je n'ai pas choisi d'utiliser ses langages ils se sont imposés. Chacun à ses forces et ses faiblesses et ils sont complémentaires.

marc-andré Membre non connecté
-
- Voir le profil du membre marc-andré
- Inscrit le : 29/09/2015
- Groupes :
oui c'est le principe de cette rubrique "Discussions Libres", de parler un peu de tout;
comme il y avait celle sur le vin qui faisait un genre de polémique, je me suis lancé sur une conversation, "à bâtons rompus", sur l'informatique, en général;
oui, je sais bien qu'en milieu professionnel, on va pas "choisir" les logiciels et langages utilisés en fonction de nos goûts personnels;
moi, c'est différent, je suis un vieux blaireaux qui veux s'amuser avec les soft modernes;
c'est pas mon job, c'est juste un hobby, et autant travailler avec des trucs qui me plaisent!
en fait je suis content car contrairement à ce que l'on croit, une conversation sur l'informatique, c'est pas forcément ennuyeux!
Édité par marc-andré Le 09/04/2019 à 20h34
HP ProDesk ;
Mageia8 Gnome
Liberté et sécurité sont les arguments classiques pour LINUX. En prime il y a aussi la dignité et la confiance ressentie depuis que je suis sous Mageia
Mageia8 Gnome
Liberté et sécurité sont les arguments classiques pour LINUX. En prime il y a aussi la dignité et la confiance ressentie depuis que je suis sous Mageia

stroibe974 Membre non connecté
-
- Voir le profil du membre stroibe974
- Inscrit le : 13/08/2018
- Groupes :
-
Modérateur
marc-andré :
en fait je suis content car contrairement à ce que l'on croit, une conversation sur l'informatique, c'est pas forcément ennuyeux!
en fait je suis content car contrairement à ce que l'on croit, une conversation sur l'informatique, c'est pas forcément ennuyeux!
« Tout est intéressant... pour peu qu'on s'y intéresse. »
(c'est de moi, enfin, ça a sûrement déjà été dit par d'autres, bien entendu !)

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Regardez ça :
Code :
#@DATE:Aujourd'hui @# #@Type:classique@#
#@DATE:Aujourd'hui 09h@# #@Type:autre@#
#@DATE:Aujourd'hui 10h@# #@Type:concert@#
#@DATE:Aujourd'hui 10h30@# #@Type:autre@#
#@DATE:Aujourd'hui 11h@# #@Type:autre@#
#@Type:autre@#
#@Type:autre@#
#@DATE:Aujourd'hui 12h@# #@Type:autre@#
#@DATE:Aujourd'hui 14h@# #@Type:autre@#
#@DATE:Aujourd'hui 16h@# #@Type:autre@#
#@DATE:Aujourd'hui 17h@# #@Type:theatre@#
#@Type:classique@#
#@Type:autre@#
#@DATE:Aujourd'hui 19h@# #@Type:theatre@#
#@DATE:Aujourd'hui 20h@# #@Type:concert@#
#@DATE:Aujourd'hui 20h30@# #@Type:concert@#
#@DATE:Dernier jour@# #@Type:autre@#
Ce fichier est généré par un de mes scripts, il pompe son contenu d'une page web.
Là je vous l'ai un peu remis en forme, il n'y a aucun espace entre les balises.
Comment puis-je copier le contenu qu'il manques à certaines lignes ? (Je parles des lignes qui ne commencent pas par #@DATE: )
Je souhaites que ces lignes (n'ayant pas #@DATE) aie la même #@DATE: que la ligne précédente.
J'ai du mal à voir. SED ne connait pas "ligne précédente", cependant il connait "ligne suivante" (n pour next).
Édité par Jybz Le 14/04/2019 à 21h42
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

magnux77 Membre non connecté
-
- Voir le profil du membre magnux77
- Inscrit le : 21/09/2009
- Groupes :
-
Membre d'Honneur
...depuis Mandrake 7
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]

magnux77 Membre non connecté
-
- Voir le profil du membre magnux77
- Inscrit le : 21/09/2009
- Groupes :
-
Membre d'Honneur
Ci-dessous en console, je liste le fichier de données jybz.txt, je liste le fichier bash jybz et je l'exécute et affiche le résultat.
Code BASH :
[jps@amd664 ~]$ cat jybz.txt #@DATE:Aujourd'hui @# #@Type:classique@# #@DATE:Aujourd'hui 09h@# #@Type:autre@# #@DATE:Aujourd'hui 10h@# #@Type:concert@# #@DATE:Aujourd'hui 10h30@# #@Type:autre@# #@DATE:Aujourd'hui 11h@# #@Type:autre@# #@Type:autre@# #@Type:autre@# #@DATE:Aujourd'hui 12h@# #@Type:autre@# #@DATE:Aujourd'hui 14h@# #@Type:autre@# #@DATE:Aujourd'hui 16h@# #@Type:autre@# #@DATE:Aujourd'hui 17h@# #@Type:theatre@# #@Type:classique@# #@Type:autre@# #@DATE:Aujourd'hui 19h@# #@Type:theatre@# #@DATE:Aujourd'hui 20h@# #@Type:concert@# #@DATE:Aujourd'hui 20h30@# #@Type:concert@# #@DATE:Dernier jour@# #@Type:autre@# [jps@amd664 ~]$ cat jybz awk -F "#@" ' BEGIN {PrevF2=" "} substr($2,1,4) == "DATE" {PrevF2=$2 ; print "#@" $2 "#@" $3} substr($2,1,4) == "Type" {print "#@" PrevF2 "#@" $2} ' jybz.txt [jps@amd664 ~]$ ./jybz #@DATE:Aujourd'hui @# #@Type:classique@# #@DATE:Aujourd'hui 09h@# #@Type:autre@# #@DATE:Aujourd'hui 10h@# #@Type:concert@# #@DATE:Aujourd'hui 10h30@# #@Type:autre@# #@DATE:Aujourd'hui 11h@# #@Type:autre@# #@DATE:Aujourd'hui 11h@# #@Type:autre@# #@DATE:Aujourd'hui 11h@# #@Type:autre@# #@DATE:Aujourd'hui 12h@# #@Type:autre@# #@DATE:Aujourd'hui 14h@# #@Type:autre@# #@DATE:Aujourd'hui 16h@# #@Type:autre@# #@DATE:Aujourd'hui 17h@# #@Type:theatre@# #@DATE:Aujourd'hui 17h@# #@Type:classique@# #@DATE:Aujourd'hui 17h@# #@Type:autre@# #@DATE:Aujourd'hui 19h@# #@Type:theatre@# #@DATE:Aujourd'hui 20h@# #@Type:concert@# #@DATE:Aujourd'hui 20h30@# #@Type:concert@# #@DATE:Dernier jour@# #@Type:autre@# [jps@amd664 ~]$
Une limite à cette concision : que le 1er enregistrement contienne effectivement une date. Sinon il faudra fournir une spécification en cas d'absence de date de début

Quelques explications supplémentaires :
- le séparateur de champs que je donne à awk est "#@". Comme awk, par définition élimine ce séparateur de champs, je dois le remettre dans les print de sortie ;
- j'ai repris le fichier tel que tu le présentais, sans les " " le résultat devrait être correct ;
- le awk fonctionne par règles : condition {action} en itération automatique sur chaque ligne du fichier à traiter.
Je pense que tu ne connaissais pas le awk sinon tu y aurais pensé toi-même

Édité par magnux77 Le 15/04/2019 à 10h37
...depuis Mandrake 7
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
magnux77 :
Voilà un p'tit awk qui va bien...
Ci-dessous en console, je liste le fichier de données jybz.txt, je liste le fichier bash jybz et je l'exécute et affiche le résultat.
Une limite à cette concision : que le 1er enregistrement contienne effectivement une date. Sinon il faudra fournir une spécification en cas d'absence de date de début
Quelques explications supplémentaires :
- le séparateur de champs que je donne à awk est "#@". Comme awk, par définition élimine ce séparateur de champs, je dois le remettre dans les print de sortie ;
- j'ai repris le fichier tel que tu le présentais, sans les " " le résultat devrait être correct ;
- le awk fonctionne par règles : condition {action} en itération automatique sur chaque ligne du fichier à traiter.
Je pense que tu ne connaissais pas le awk sinon tu y aurais pensé toi-même
.
Ci-dessous en console, je liste le fichier de données jybz.txt, je liste le fichier bash jybz et je l'exécute et affiche le résultat.
Code BASH :
[jps@amd664 ~]$ cat jybz.txt #@DATE:Aujourd'hui @# #@Type:classique@# #@DATE:Aujourd'hui 09h@# #@Type:autre@# #@DATE:Aujourd'hui 10h@# #@Type:concert@# #@DATE:Aujourd'hui 10h30@# #@Type:autre@# #@DATE:Aujourd'hui 11h@# #@Type:autre@# #@Type:autre@# #@Type:autre@# #@DATE:Aujourd'hui 12h@# #@Type:autre@# #@DATE:Aujourd'hui 14h@# #@Type:autre@# #@DATE:Aujourd'hui 16h@# #@Type:autre@# #@DATE:Aujourd'hui 17h@# #@Type:theatre@# #@Type:classique@# #@Type:autre@# #@DATE:Aujourd'hui 19h@# #@Type:theatre@# #@DATE:Aujourd'hui 20h@# #@Type:concert@# #@DATE:Aujourd'hui 20h30@# #@Type:concert@# #@DATE:Dernier jour@# #@Type:autre@# [jps@amd664 ~]$ cat jybz awk -F "#@" ' BEGIN {PrevF2=" "} substr($2,1,4) == "DATE" {PrevF2=$2 ; print "#@" $2 "#@" $3} substr($2,1,4) == "Type" {print "#@" PrevF2 "#@" $2} ' jybz.txt [jps@amd664 ~]$ ./jybz #@DATE:Aujourd'hui @# #@Type:classique@# #@DATE:Aujourd'hui 09h@# #@Type:autre@# #@DATE:Aujourd'hui 10h@# #@Type:concert@# #@DATE:Aujourd'hui 10h30@# #@Type:autre@# #@DATE:Aujourd'hui 11h@# #@Type:autre@# #@DATE:Aujourd'hui 11h@# #@Type:autre@# #@DATE:Aujourd'hui 11h@# #@Type:autre@# #@DATE:Aujourd'hui 12h@# #@Type:autre@# #@DATE:Aujourd'hui 14h@# #@Type:autre@# #@DATE:Aujourd'hui 16h@# #@Type:autre@# #@DATE:Aujourd'hui 17h@# #@Type:theatre@# #@DATE:Aujourd'hui 17h@# #@Type:classique@# #@DATE:Aujourd'hui 17h@# #@Type:autre@# #@DATE:Aujourd'hui 19h@# #@Type:theatre@# #@DATE:Aujourd'hui 20h@# #@Type:concert@# #@DATE:Aujourd'hui 20h30@# #@Type:concert@# #@DATE:Dernier jour@# #@Type:autre@# [jps@amd664 ~]$
Une limite à cette concision : que le 1er enregistrement contienne effectivement une date. Sinon il faudra fournir une spécification en cas d'absence de date de début

Quelques explications supplémentaires :
- le séparateur de champs que je donne à awk est "#@". Comme awk, par définition élimine ce séparateur de champs, je dois le remettre dans les print de sortie ;
- j'ai repris le fichier tel que tu le présentais, sans les " " le résultat devrait être correct ;
- le awk fonctionne par règles : condition {action} en itération automatique sur chaque ligne du fichier à traiter.
Je pense que tu ne connaissais pas le awk sinon tu y aurais pensé toi-même

Super !
C'est exactement ce que je souhaite, et la première ligne contient toujours la première balise au minimum !
Effectivement, je ne connais pas awk (enfin si, de nom uniquement, mais j'ai commencé le shell il y a 11 mois environ, dès les premiers mois j'ai rencontré une difficulté et j'ai appris à utiliser un peu sed, je ne me suis pas penché sur l'utilisation d'awk qui me paraissant trop compliqué, mais je pense que je vais y venir, surtout maintenant pour mieux comprendre ce que font ces lignes, quels sont les actions, les variables, etc.
J'ai dans mon fichier les séparateurs ouvrant et fermants, j'ai l'impression que tu ne traites que les ouvrantes, en prenant en compte que les fermantes font parti du texte, ça marche aussi !
Aller, je trifouille ta commande pour analyser, et tout casser, et tout réparer

Merci encore !
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Code BASH :
awk -F "#@" ' BEGIN {PrevF2=" "} substr($2,1,4) == "DATE" {PrevF2=$2 ; print "#@" $2 "#@" $3} substr($2,1,4) == "Type" {print "#@" PrevF2 "#@" $2} '
Est-ce que la simple quote ' ne m'empêchera pas de remplacer #@ par mes variables du script ${SEPO} (séparateur ouvrant) ?
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
à begin, on effectue des initialisation, et "PrevF2" est une variable qu'on initialise avec rien.
la ligne suivante, on fait une substitution, elle fonctionne SI elle commence par DATE (== "DATE"), dans ce cas, on réinitialise PrevF2 avec la ligne courante (mais pourquoi $2 c'est la ligne courante ???), puis on imprime le séparateur ouvrant, la ligne courante, un second séparateur ouvrant, le ...
Ahhh j'ai compris, le séparateur commence après le premier élément,
val1 sep val2 sep val3 sep, ainsi, on imprime "$2" car $1 est vide dans notre cas. Ce n'est pas "la ligne courante" qui est sauvegardée dans PrevF2 (ahh, previous field 2), mais le champs.
ligne suivante, une substitution, qui est active si la ligne commence par "TYPE", dans ce cas, on affiche le séparateur ouvrant, l'élément sauvegardé (le second champs de la ligne précédente), puis enfin notre second champs de la ligne.
Cependant... à quoi correspond 1,4 ?
J'avais donné apparemment un exemple trop simple, car j'ai encore des balises et variables qui suivent, avec je n'en ai plus que deux

Je cherche encore l'option qui "travaille dans le fichier" (et non sur la sortie standard).
Je continue mon approfondissement.
Édité par Jybz Le 15/04/2019 à 11h51
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

magnux77 Membre non connecté
-
- Voir le profil du membre magnux77
- Inscrit le : 21/09/2009
- Groupes :
-
Membre d'Honneur

Jybz :
$2 est le champ après le 1er séparateur, substr($2,1,4) la sous-chaîne des 4 1ers caractères de $2.Cependant... à quoi correspond 1,4 ?
Jybz :
Je ne comprends strictement rien à cette phrase... Faut que t'expliques ! Refiles un fichier réaliste, je veux bien refaire une passe.J'avais donné apparemment un exemple trop simple, car j'ai encore des balises et variables qui suivent, avec je n'en ai plus que deux :mrgreen: $* fonctionne ? moyen moyen comme truc.
Jybz :
Et le pipe, coco ?Je cherche encore l'option qui "travaille dans le fichier" (et non sur la sortie standard).
Au lieu de "awk -F '...' fichier", tu fais "cat fichier | awk -F '...' > fichier". Mais je ne le conseille pas. À la moindre erreur le fichier est vérolé. Il vaut mieux avancer par étapes de fichiers successifs, et les supprimer quand tout est au point et qu'ils ne servent plus.
Édité par magnux77 Le 15/04/2019 à 11h50
...depuis Mandrake 7
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Code BASH :
awk -F "${SEPO}" " BEGIN {PrevF2=\" \"} substr(\$2,1,4) == \"DATE\" {PrevF2=\$2 ; print \$0} substr(\$2,1,4) == \"TYPE\" {print \"${SEPO}\" PrevF2 \$0} " ${tmp}
man awk : "$0 est l'enregistrement complet."
Je cherche encore à quoi correspond 1,4, je vais y arriver

Merci Magnux77 pour cette découverte awk !
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

magnux77 Membre non connecté
-
- Voir le profil du membre magnux77
- Inscrit le : 21/09/2009
- Groupes :
-
Membre d'Honneur
Jybz :
Au cas où tu n'aurais pas vu, j'ai répondu au-dessus... Je cherche encore à quoi correspond 1,4, je vais y arriver
Tu t'es compliqué la vie en choisissant " (double quote) comme balise de code awk. SI tu prends ' (simple quote), cela t'évites de déspécialiser toutes les doubles-quotes \" dnas ton code awk.
Édité par magnux77 Le 15/04/2019 à 11h56
...depuis Mandrake 7
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
magnux77 :
Jybz :
Je ne comprends strictement rien à cette phrase... Faut que t'expliques ! Refiles un fichier réaliste, je veux bien refaire une passe.J'avais donné apparemment un exemple trop simple, car j'ai encore des balises et variables qui suivent, avec je n'en ai plus que deux :mrgreen: $* fonctionne ? moyen moyen comme truc.
Hey ho ! veux tu bien me laisser incompris ho ? J'avais oublié le "e" pour le smiley mrgreen, et $* correspond à "tous les paramètres" dans les scripts il me semble. Mais j'ai résolu mon affaire avec $0

Je te montrerai le script en PM

magnux77 :
Au lieu de "awk -F '...' fichier", tu fais "cat fichier | awk -F '...' > fichier". Mais je ne le conseille pas. À la moindre erreur le fichier est vérolé. Il vaut mieux avancer par étapes de fichiers successifs, et les supprimer quand tout est au point et qu'ils ne servent plus.
Jybz :
Et le pipe, coco ?Je cherche encore l'option qui "travaille dans le fichier" (et non sur la sortie standard).
Au lieu de "awk -F '...' fichier", tu fais "cat fichier | awk -F '...' > fichier". Mais je ne le conseille pas. À la moindre erreur le fichier est vérolé. Il vaut mieux avancer par étapes de fichiers successifs, et les supprimer quand tout est au point et qu'ils ne servent plus.
Oui, heureusement je travaille en chargeant mes fichiers en RAM ( tmp=$(mktemp) && cat fichier > ${tmp} ou sinon je charge le fichier depuis internet, mon fichier est généré à chaque fois que je lance la commande). Du coup, je travaille sur la mémoire vive. Je vais utiliser deux fichiers temporaires, le coût "mémoire" est assez faible.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
marc-andré :
dans le GUI, il manque, sur tous les bureaux, une vraie fonction "aide contextuelle", qui, sur un écran donnée, détaillerais les différents boutons, et les commandes shell ou scripts auxquels ils sont rattachés;
N'est pas plutôt un problème du libre en général ? Pour te donner un exemple, il existe un très bon logiciel libre de mécanique des fluides nommé OpenFOAM. Celui-ci fonctionne avec des fichiers de configuration et se lance en ligne de commande. Les scripts de lancement sont d'ailleurs écrits en bash. Cependant la documentation est famélique. Seul un User Guide très succinct est disponible sur leur site. Il existe aussi un wiki (peu mis à jour) et un Programmers Guide qui traînent sur internet mais la plupart du temps, il faut chercher soit même ou poser la question sur des forums. Il existe une raison à tout ça. Afin de financer le développement du logiciel, des formations payantes sont proposées. Ils n'ont donc aucun intérêt à maintenir un User Guide complet. Au contraire, le gros logiciel propriétaire du même domaine se nomme Fluent. Il est entièrement en GUI même s'il possède une interface de ligne de commande interne. Dans son GUI, il existe une interface CLI ou l'on utilise les commandes avancées du logiciel (ce n'est pas exactement du Bash). Cependant le logiciel est fourni avec un User Guide qui décrit toutes les commandes et un Theory Guide qui donne toute la théorie de la mécanique des fluides. Ils sont tous les deux excellents mais ce logiciel est une boîte noire cu que l'on ne connait pas l'implémentation des commandes.
marc-andré :
il manque une pédagogie générale, et c'est ce qui me fait m'intéresser de plus en plus au shell, c'est que pour âpre et rustique qu'elle soit, il existe une méthode, tandis en GUI, il n'y a rien permettant de faire quelques progrès; on reste éternellement idiot, comme un poule devant un couteau;
moi, cette sensation ne me convient pas;
on choisit d'utiliser les logiciels libres, mais si on reste en GUI, on reste "prisonniers" de concepts qui nous sont étrangers;
la CLI, est beaucoup plus libératrice puisqu'elle suppose une meilleure maîtrise de son ordi.
moi, cette sensation ne me convient pas;
on choisit d'utiliser les logiciels libres, mais si on reste en GUI, on reste "prisonniers" de concepts qui nous sont étrangers;
la CLI, est beaucoup plus libératrice puisqu'elle suppose une meilleure maîtrise de son ordi.
Ce serait vrai si les réponses données sur les forums étaient plus complètes. La plupart du temps sur les forums, quand on pose une question la réponse est :
Code BASH :
commande -azerty --lol --si-tu-le-dis tonFichier -qsd un_obscure_ficier_de_configuration
Je ne suis pas sûr que cela aide beaucoup la personne qui a posé la question (à part que sa demande va être satisfaite). Certes l'utilisateur peut aller chercher lui même dans les pages du manuel. Mais si je suis monteur vidéo je n'ai pas de temps à perdre à chaque fois que je souhaite une commande qui n'a rien à voir avec mon travail. Quand vous donnez une commande sur les forums il faut toujours penser à la décrire.
marc-andre :
mais il ne sait pas importer de "csv", il lui faut des plugins (ça fait chic je suppose ?!);

marc-andre :
merci "man" et la CLI, car avec le GUI, j'y serais encore à chercher son p§! de plugin;
C'est donc un GUI mal conçu puisqu'il ne permet pas de faire tout ce que permet la ligne de commande.
marc-andre :
PS : j'ai comme la vague impression que les commandes et programmes en CLI sont des biens meilleures qualités que ceux écrits pour les GUI;
je suis tombé récemment sur une vidéo d'un jeune américain, né avec une souris dans la main, et qui a fait entre autre une vidéo assez polémique : les computers étaient plus rapides quand ils étaient plus lents; et en fait, le problème vient de ces interfaces graphiques complètement obèses et inutiles qui encombrent la machine avec des sottises; et qui, sont censées nous faciliter la vie ?
bien souvent, elle nous la complique;
je suis tombé récemment sur une vidéo d'un jeune américain, né avec une souris dans la main, et qui a fait entre autre une vidéo assez polémique : les computers étaient plus rapides quand ils étaient plus lents; et en fait, le problème vient de ces interfaces graphiques complètement obèses et inutiles qui encombrent la machine avec des sottises; et qui, sont censées nous faciliter la vie ?
bien souvent, elle nous la complique;
Je crois plutôt que cela vient du fait que l'interface graphique avec tous ses effets et autres prend forcément beaucoup plus de place. De plus, un programme en ligne de commande simple n'utilise pas de bibliothèques graphiques comme QT ou GTK qui peuvent comprendre des bogues source de ralentissement de la machine.
Un programme en ligne de commande n'est pas forcément plus simple qu'un programme graphique. Par exemple, qui comprend toutes les commandes tournant autour des fonctionnalité de systemd ? Leur code et leurs commandes sont incompréhensibles. Une interface graphique simplifie vraiment l'utilisation et on ne perd pas 2h à essayer de comprendre ce que l'on fait.
Puisqu'on a parlé documentation, autant remercier toutes les personnes ayant mis à jour le wiki de Mageia afin que celle-ci ait enfin une documentation digne de ce nom

bonne soirée[/quote]

marc-andré Membre non connecté
-
- Voir le profil du membre marc-andré
- Inscrit le : 29/09/2015
- Groupes :
je salue aussi l'effort de mise à jour de la documentation;
de toute façon, à bien réfléchir, la solution idéale à ce problème de l'aide contextuelle c'est de savoir qui va faire ça, à quel niveau ?
pour un seul bureau, ou pour tous les bureaux ?
sinon, de la même façon qu'il y a une base de donnée pour les rpm, il pourrait y avoir une base de données pour les messages d'aide contextuelle;
faudrait que les concepteurs de bureaux et d'applications jouent le jeux de fournir le contenu;
donc, on voit que une fonctionnalité très importante si on voulait que gnu/linux devienne vraiment populaire, à savoir une aide contextuelle locale (pas sur d'hypothétique site web), on ne sait pas à quel niveau de décision ça devrait se faire ?
si une distribution fait les frais de ce genre de développements, c'est toutes les autres qui vont en profiter gratis;
il me semble donc que c'est l'organisation même de cet univers du libre qui ne permet pas que cette fonctionnalité émerge quelques part;
et qui fait que l'utilisation de gnu/linux en desktop reste marginale.
PS commentaire de vieux cxxx:
dans le turbo pascal 6.0 de 1990, dans la hiérarchie des objets affichables, il était attaché à chaque TView de base un "HelpCtx" (un simple integer!)
et il était fourni un genre de "compilateur" qui permettait de générer le fichier d'aide (une hash table) à partir d'un fichier texte, avec juste une syntaxe "adhoc"; voilà, 30ans en arrière, cette préoccupation de fournir une aide contextuelle était présente et fonctionnelle.
la question que je me pose c'est pourquoi cette culture c'est perdue?
HP ProDesk ;
Mageia8 Gnome
Liberté et sécurité sont les arguments classiques pour LINUX. En prime il y a aussi la dignité et la confiance ressentie depuis que je suis sous Mageia
Mageia8 Gnome
Liberté et sécurité sont les arguments classiques pour LINUX. En prime il y a aussi la dignité et la confiance ressentie depuis que je suis sous Mageia
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie