UNIX grep fichier en sortie

for regle in $(cat list_rules3.tmp)
do
regle=${regle}" "
ligne=$(grep -A1 -B1 - w $regle files/rules.txt)
echo $ligne >>files/rules2.txt
done
cp files/rules2.txt files/rules.txt

Avec ces lignes de commande (ci dessus) j'obtiens ceci (ci dessous)

1183537204 H+01_N tous les lundis
1183537204 H+02_N tous les mardis
1183537204 J+01LS Du lundi au samedi
1183537204 J+01LV Du Lundi au Vendredi N Du Lundi au Vendredi sauf jours feries
1183537204 M+1DIMAN N Le premier dimanche du mois

Alors que j'aimerais obtenir ceci (ci dessous)

1183537204 H+01_N tous les lundis
1183537204 H+02_N tous les mardis
1183537204 J+01LS Du lundi au samedi
1183537204 J+01LV Du Lundi au Vendredi
1183537204 M+1DIMAN Le premier dimanche du mois

Que dois je faire? Quelqu'un peut il m'aider? merci
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. regle=${regle}" " cela ne sert à rien

    Remplacer le grep par awk:
    ligne=$(awk '$1 ~ /'"$regle"'/ {print $0}' files/rules.txt)
    0
    1. Modérateur
      Salut,

      Pour une meilleure compréhension de notre part, et une réponse plus précise ou adéquate (bien que je suis persuadé que la réponse de "dubcek" doit faire l'affaire), pourrais-tu afficher ton fichier d'entrée s'il te plaît, merci ;-))
      0
      1. Modérateur
        pourrais-tu afficher ton fichier d'entrée

        En fait c'est ici qu'il a commencé recherche dans liste fichier
        0
      2. Modérateur
        Ah oui effectivement...
        Merci lami20j

        Fabien essaie ça :
        $ cat foo.ksh
        
        #! /bin/ksh
        
        set +xv
        
        for regle in $(cat list_rules3.tmp)
        do
        ligne=$(grep "${regle} " list_rules.tmp)
        echo $ligne >>rules.txt
        done
        
        $ ./foo.ksh
        
        $ cat rules.txt
        
        H+01_N tous les lundis
        H+02_N tous les mardis
        J+01LS Du lundi au samedi
        J+01LV Du Lundi au Vendredi
        M+1DIMAN Le premier dimanche du mois
        
        $ 
        ;-))
        0