Bonjour,

dansle livre les expressions régulieres chez ENI il parle de wc pour
compter les lignes !

#!/bin/bash if [ $# -ne 1 ]; then echo "Usage: $0 <nom_du_fichier>" exit 1
fi if [ ! -f "$1" ]; then echo "Fichier introuvable." exit 1 fi tac "$1" |
nl -ba


Fait par Chatgpt ¡ je suis interessé  de voir une version avec wc ?

null


Le dim. 2 mars 2025 à 13:28, philippe L <[email protected]> a écrit :

> 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 à