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!nullLe sam. 1 mars 2025 à 23:42, Marc Chantreux <mc@unistra.fr> 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