UNIX grep fichier en sortie

Fermé
fabien.joubert Messages postés 35 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 31 juillet 2008 - 4 juil. 2007 à 10:33
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 4 juil. 2007 à 22:29
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
A voir également:

2 réponses

dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
4 juil. 2007 à 13:43
regle=${regle}" " cela ne sert à rien

Remplacer le grep par awk:
ligne=$(awk '$1 ~ /'"$regle"'/ {print $0}' files/rules.txt)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
4 juil. 2007 à 18:51
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 juil. 2007 à 21:51
pourrais-tu afficher ton fichier d'entrée

En fait c'est ici qu'il a commencé recherche dans liste fichier
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
4 juil. 2007 à 22:29
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