![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Shell Vos questions sur l'utilisation des commandes shell |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) | |
|
Membre expérimenté
![]() Date d'inscription: novembre 2002
Localisation: orne
Âge: 32
Messages: 570
|
Bonjour,
J'utilise un shell qui traite 3 fichiers en paramètre. il y'a également un autre paramètre mais non utile dans cette partie Mon souci est qu'il n'arrive pas à lire les données du dernier fichier. Code :
ENT=$DONNEES/$4
while read ENTI
do
echo "1Ent ---> " &ENTI
done < ${ENT_SUP}
Dans le fichier, il y'a uniquement des affichages de numéro, comme ci-dessous. Citation:
Cordialement Pinocchio |
|
|
|
|
|
|
#2 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: avril 2004
Âge: 29
Messages: 53
|
ca serait pas plutôt
Code :
ENT=$DONNEES/$4
while read ENTI
do
echo "1Ent ---> " $ENTI
done < ${ENT_SUP}
__________________
First, they ignore you. Then, they laught at you.Then, they fight you. Then, you win. Mohandas Gandhi |
|
|
|
|
|
#3 (permalink) |
|
Membre expérimenté
![]() Date d'inscription: novembre 2002
Localisation: orne
Âge: 32
Messages: 570
|
ok merci pour cette première étape par la suite dans la boucle,il est effectué
Code :
grep $ENTI $Temp1 >> $Exp_Sup sed /$ENTI/d $Temp1 >$Temp2 cp -f $Temp2 $Temp1 Je ne connais rien aux commandes unix mais n'existe-t-il pas une commande que je pourrais utiliser pour éviter d'effectuer cette boucle pour récupérer ligne par ligne mes $ENTI . Car actuellement le traitement effectue 17 fois la copie du fichier et son parcours pour supprimer la valeur. Le fichier dans lequel je dois effectuer la suppression fait 400Mo et 17 fois le parcours, c'est pas très rapide. Si vous avez le nom d'une commande, je serai preneur. Cordialement Pinocchio |
|
|
|
|
|
#4 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: février 2007
Messages: 451
|
deja pour éviter la copie tu peux utiliser l'option -i de sed pour appliquer les changements directement dans ("in") le fichier.
__________________
La science est ce que nous comprenons suffisamment bien pour l'expliquer à un ordinateur. L'art, c'est tout ce que nous faisons d'autre. Donald E. Knuth |
|
|
|
|
|
#6 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2007
Localisation: Toulouse
Messages: 471
|
Si j'ai bien compris, tu as 17 lignes à supprimer et les "cles" de recherche sont comme celles ci-dessous :
Code :
54124 32568 1205 FG7541557 HJK7474 Code :
sed -r "54124|32568|1205|FG7541557|HJK7474" infile > outfile -r, --regexp-extended use extended regular expressions in the script. le pipe '|' signifie OU
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
|
|
|
![]() |
![]() |
||
while read fichier en paramètre
|
||
| Outils de la discussion | |
|
|