Vous n'êtes pas identifié(e).
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Hors ligne
Debian Squeeze 6.0.1 64 bits sur AMD Phenom II X4 3GHz + Nvidia Geforce 9600 GT
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Bonjour,
J'ai repéré l'erreur suivante dans ce tutoriel :
dans le paragraphe : « sed et les sous-chaînes » la commande sed contient des espaces superflus :sed -e "s/\ ([0-9][0-9]*\ )/aa\ 1aa/" <fichier>
alors que l'on devrait avoir :sed -e "s/\([0-9][0-9]*\)/aa\1aa/" <fichier>
Merci enicar, c'est rectifié !
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
sur le fichier
Ne semble pas pouvoir changer la deuxième occurrence de toto en TOTO.
L'adressage chiffré devant être placé devant les commandes, c'est peut-être un mauvais couper/coller qui a peut-être remplacé cela :
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.
Hors ligne
va changer la seconde occurence de la chaîne toto par TOTO (uniquement la seconde chaîne toto rencontrée dans le texte)
Hors ligne
Hors ligne
captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Hors ligne
Pages perso : feh, omegat, udisks, passerelle, schroot vraiment transparent
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Pages perso : feh, omegat, udisks, passerelle, schroot vraiment transparent
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Pages perso : feh, omegat, udisks, passerelle, schroot vraiment transparent
Hors ligne
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
Imaginez des centaines de pages de ce type et votre mission, récupérer les valeurs des 5 champs pour les mettre dans un tableur. Un travail titanesque à la main...
Pour cela utiliser, sed et les sous-chaines.
- ^<h2> : Ne travailler qu'avec les lignes commençant par la balises <h2>
- [A-Z]{6} : pour le 1er motif de recherche 6 lettres en capitales
- .* : n'importe quoi jusqu'au prochain motif
- ETAGERE[0-9]{2} : le terme ETAGERE suivi de 2 chiffres
- .* : n'importe quoi jusqu'au prochain motif
- [0-9]{8} : une suite de 8 chiffres
- .* : n'importe quoi jusqu'au prochain motif
- BOX[0-9]{2} : le terme BOX suivi de 2 chiffres
- .* : n'importe quoi jusqu'au prochain motif
- [A-Z]{6} : une suite de 6 lettres en capitales
- .* : n'importe quoi jusqu'à la fin de la ligne
Voilà pour les expressions régulières (regex). Pour les rendre compréhensibles par sed, il faudra "échapper" (\) les caractères {, }, ( et ) afin qu'ils ne soient pas considérés comme un élément d'une chaine de caractère mais comme un élément d'une expression régulière.
Ce qui donnera comme regex
^<h2>\([A-Z]\{6\}\).*\(ETAGERE[0-9]\{2\}\).*\([0-9]\{8\}\).*\(BOX[0-9]\{2\}\).*\([A-Z]\{6\}\).*
Tout est bien beau, mais comment virer le code HTML et le blablabla ? En entourant chaque motif de recherche par des parenthèses tout simplement et en rappelant ces extractions par \1 pour la première, \2 pour la seconde et ainsi de suite
- le premier motif \1
- le second : \2
- le 3e : \3
- Et ainsi de suite
Comme c'est pour un tableur, nous passerons par un fichier CSV. Il suffit donc de récupérer les motifs et de les séparer par un point virgule
\1;\2;\3;\4;\5;
Et comme il s'agit d'une substitution, on utilisera l'option -s de sed
Donc au final :
QUi retournera
Si vous voulez créer un fichier csv, simplement rediriger la sortie du terminal > sortie.csv
Si le fichier doit être incrémenté par la lecture de plusieurs sources, utiliser >> à la place de > afin de ne pas écraser le fichier existant mais le compléter.
Enjoy
Dernière modification par cyrille (25-01-2021 21:08:45)
"Ils ne me comprennent point, je ne suis pas la bouche qu’il faut à ces oreilles."
Association Debian-Facile | Les cahiers du débutant | ISO Debian-Facile | Page perso. sur #df
Hors ligne