Outils pour utilisateurs

Outils du site


issue82:command_and_conquer

Last month, I wrote an article on using regular expressions within Sed, in an attempt to show my process when creating such expressions. Just before writing this month's article, I received an email from a reader, who shared his solution to the problem (formatting a TaskWarrior file). His solution consisted of using a single Sed statement, and addressing lines of the file specifically. His sed command is shown in the box above right.

Le mois dernier, j'ai écrit un article sur l'utilisation des expressions régulières avec Sed, en tentant de vous expliquer comment je m'y prenais pour créer de telles expressions. Juste avant d'écrire l'article de ce mois-ci, j'ai reçu le courriel d'un lecteur qui a partagé sa solution au problème (le formatage d'un fichier pour TaskWarrior). Sa solution consiste à utiliser une seule instruction Sed et à traiter spécifiquement les lignes du fichier. Sa commande Sed est indiquée dans l'encart ci-dessus à droite.

His explanation: • Take care of this one special case with the title line. As there is an address label (1), this substitution is done only for line 1. In sed scripts, a line number matches only that line. I used an address label only for performance purposes - there would be just one single line matching “^ID”, • Another address label (2). This rule is used only for line 2, and the command is branch (“goto”). As there is no label, it means “goto to the end of the script” - simply skip line 2. This is extraneous for the sake of an example. • The third line matches only the “tasks” line. • The fourth line takes care of the semicolons after the dates, as there will never be two spaces due to right-adjustment. Note that you can also use delimiters other than slashes. • Finally, take care of the rest. Substitute each at-least-two space combinations with a semicolon and the spaces found. This also applies to the first line (headline).

Son explication :

• Prenez note du cas particulier concernant la ligne de titre, où la présence de l'étiquette d'adresse (1) indique que cette substitution ne s'applique qu'à la ligne 1. Dans les scripts sed, indiquer un numéro de ligne a pour effet de s'appliquer uniquement à cette ligne. J'ai utilisé une étiquette d'adresse seulement à des fins de performance, car il n'y aurait qu'une seule ligne unique correspondant à « ^ ID ».

• Une autre étiquette d'adresse (2) est utilisée pour ne s'appliquer qu'à la ligne 2 et elle signifie d'aller à la fin du script (« goto ») : c'est comme cela que se comporte sed lorsque l'on omet l'étiquette - du coup on saute la ligne 2. C'est un peu superflu ici, mais c'était pour l'exemple…

• La troisième ligne correspond uniquement à la ligne « tasks ».

• La quatrième ligne traite les points-virgules après les dates en sachant qu'il n'y aura jamais deux espaces en raison de l'alignement à droite. Notez que vous pouvez également utiliser des délimiteurs autres que des barres obliques.

• Enfin, pour traiter le reste, remplacez toutes les combinaisons de doubles espaces (et plus) par un point-virgule. Cela s'applique également à la première ligne de titre.

His solution is certainly more efficient than mine, and is a brilliant example of how there are many solutions to these sorts of problems.

Sa solution est certainement plus efficace que la mienne, et c'est un brillant exemple qui prouve qu'il existe différentes manières de traiter ce genre de problème.

Due to the fact that work has kept me extremely busy the last few weeks, I have decided to not write a typical article for this month. Instead, I'd like to run a vote on what article the readers would like to see in FCM#84. The reason why it will appear only in FCM#84, is due to the time frame between FCM being released, and my next article being due. The choices are as follows: • A reader has requested an in-depth article on installing & setting up Rails 4.0.2 on Ubuntu (Ruby on Rails) • I recently installed ArchLinux to an external hard drive, capable of running on UEFI systems (Windows 8 or Mac OS X machines, mainly) • Last month I also offered to set up an article with formatting problems to be solved using regular expressions and sed.

Puisque mon travail me tenait très occupé ces dernières semaines, j'ai décidé de ne pas écrire un article « normal » pour ce mois-ci. Au lieu de cela, je voudrais lancer un sondage à propos de l'article que les lecteurs aimeraient voir dans le FCM n° 84. La raison pour laquelle cet article n’apparaîtra que dans le FCM n° 84 est dû au laps de temps qui existe entre la sortie d'un numéro et la date à laquelle je dois rendre mon article. Les choix sont les suivants:

• Un lecteur a demandé un article détaillé sur l'installation et la mise en place de Rails 4.0.2 sous Ubuntu (Ruby on Rails)

• J'ai récemment installé ArchLinux sur un disque dur externe, capable de fonctionner sur les systèmes UEFI ( Windows 8 ou Mac OS X machines, principalement)

• Le mois dernier, j'ai également proposé de mettre en place un article avec des problèmes de mise en forme à résoudre en utilisant des expressions régulières et sed.

Naturally, anyone who has a preferred topic not listed above, is welcome to mark the “other” box, and to give me a brief description. Anyone is also welcome to input their email address in the form, so that I can contact you with questions about your response. I promise I won't contact you for any other reason. There is also a secondary paragraph text box where you can expand upon your idea.

Naturellement, pour ceux qui ont un sujet préféré qui ne figure pas ci-dessus, leur idée est la bienvenue, et vous pouvez cocher la case « autre » et me donner une brève description de ce que vous souhaiteriez. Toute personne est également invitée à indiquer son adresse e-mail dans le formulaire, afin que je puisse vous contacter pour des questions au sujet de votre réponse. Je promets de ne pas vous contacter pour une autre raison. Une zone de texte où vous pouvez expliciter un peu plus votre idée figure sur le formulaire.

The link to the form: https://docs.google.com/forms/d/1ZqLOwpwZ-iGkU-LVBDkz65pvO8FK65rIF_X2DWGPLmQ/viewform

Le lien vers le formulaire: https://docs.google.com/forms/d/1ZqLOwpwZ-iGkU-LVBDkz65pvO8FK65rIF_X2DWGPLmQ/viewform

I apologize for not having a complete article for you this month. However, FCM#83 should contain a normal article next month. Je m'excuse de ne pas avoir rédigé un article complet pour vous ce mois-ci. Cependant, le mois prochain, le FCM n° 83 devra contenir un article « normal ».

issue82/command_and_conquer.txt · Dernière modification : 2014/06/18 18:02 de auntiee