Slt,

Ah, inverser le comptage des lignes dans Vim ou Emacs! Voici comment vous
pouvez le faire: **Pour Vim:** 1. Ouvrez le fichier dans Vim. 2. Tapez
`:set nu` pour activer l'affichage des numéros de ligne. 3. Si vous
souhaitez inverser l'ordre de comptage, vous devrez probablement créer une
fonction personnalisée dans VimScript car Vim n'a pas de fonctionnalité
intégrée pour cela. **Pour Emacs:** 1. Ouvrez le fichier dans Emacs. 2.
Activez l'affichage des numéros de ligne en tapant `M-x linum-mode`. 3.
Vous pouvez utiliser le package `nlinum` pour une meilleure gestion des
numéros de ligne. Malheureusement, Emacs non plus ne prend pas en charge
l'inversion de l'ordre de comptage des lignes directement. Vous devrez
probablement créer une fonction personnalisée en Emacs Lisp. Si vous avez
des questions spécifiques sur la création de ces fonctions personnalisées,
n'hésitez pas à demander. C'est un défi intéressant!


null


Le sam. 1 mars 2025 à 23:42, Marc Chantreux <[email protected]> a écrit :

> salut,
>
> On Sat, Mar 01, 2025 at 09:02:20PM +0100, Bernard Schoenacker wrote:
> > Bonjour,
> > Merci beaucoup pour la réponse, attention c'est juste un exemple dans
> une liste
> > <terme de matière> " espace "  <Qtité numérique> " espace" <unité g pour
> grammes>
>
> dans ton premier mail, le séparateur n'est pas un espace mais une
> tabulation. si c'est le cas tout le temps alors le problème est simple:
>
> <<% hd
> Butter  500g
>
>                             Ici c'est bien une tabulation
>                             v
> 00000000  42 75 74 74 65 72 09 35  30 30 67 0a              |Butter.500g.|
> 0000000c
>
> du coup:
>
> <<% awk -F'\t' -vOFS='\t' '{t=$1;$1=$2;$2=t}1'
> Butter  500g
> Amour pour le format TSV        ∞
>
> ou une version plus verbeuse
>
> awk '
>         BEGIN { FS = OFS = "\t" }
>         {
>                 temp = $1
>                 $1   = $2
>                 $2   = temp
>         }
>         1 # toujours vrai donc fait toujours l'action par défaut ({print})
> '
>
> ou en perl si tu as de gros volumes (ce qui ne sera pas le cas pour une
> recette):
>
> <<% perl -plF'\t' -E '$_=join "\t", reverse @F'
> Butter  500g
> Amour pour le format TSV        ∞
>
>
> > Merci beaucoup pour la réponse, attention c'est juste un exemple dans
> une liste
> > <terme de matière> " espace "  <Qtité numérique> " espace" <unité g pour
> grammes>
>
> si tu dis vrai (on ne peut pa compter sur \t), faut prévoir les cas
> pourris du genre
>
>
> doliprane 1G 1 barquette
> huile d'olive ½ louche
>
> ma stratégie serait donc
>
>         <produit> <ws>* <quantité> <ws>* <unité>
>
> et donc considérer que <quantité est la dernière valeur numérique de la
> ligne.
>
>
> <<% perl -plE '/(.*) *(\d+|[½¾]) *(.*)/; $_="$2 $3\t$1"'
> doliprane 1G 1 barquette
> huile d'olive ½ louche
>
> <<% sed -E 's/(.*) *([0-9]+|[½¾]) *(.*)/\2 \3\t\1/'
> doliprane 1G 1 barquette
> huile d'olive ½ louche
>
> bonne soirée
>
>
> --
> Marc Chantreux
> Pôle CESAR (Calcul et services avancés à la recherche)
> Université de Strasbourg
> 14 rue René Descartes,
> BP 80010, 67084 STRASBOURG CEDEX
> 03.68.85.60.79
>
>

Répondre à