UNIX grep fichier en sortie
fabien.joubert
Messages postés
35
Statut
Membre
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
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
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
-
regle=${regle}" " cela ne sert à rien
Remplacer le grep par awk:
ligne=$(awk '$1 ~ /'"$regle"'/ {print $0}' files/rules.txt) -
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 ;-))
-
pourrais-tu afficher ton fichier d'entrée
En fait c'est ici qu'il a commencé recherche dans liste fichier -
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 $;-))
-