Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
dcharles frontpage mioche
|
urgent script shell , Posté le: 05-08-2003 16:32 |
|
|
Bonjour,
J'ai ecrit ce petit script et il me pose un prb :
#!/bin/bash
cat < /etc/squid/auth | while true
do
read ligne
if [ "$ligne" == "" ]
then
break
fi
set -- $ligne
let i=i+1
done
echo $i
Je ne sais pas ce qu'il faut faire pour pourvoir utiliser la variable i aprés le passage de la boucle while. Le prb vient du fait que j'utilise un pipe qui déclenche un sous-shell donc la variable i n'est pas connu pas le shell père et je ne sais pas comment résoudre ce prb
Est ce qu'il existe un autre moyen de lire les lignes d'un fichier sans utiliser cat, more ou less
Merci |
|
|
salemioche salemioche
|
urgent script shell , Posté le: 06-08-2003 19:19 |
|
|
while read line; do echo $line; done < auth
c'est mieux non ? |
|
|
dcharles frontpage mioche
|
urgent script shell , Posté le: 07-08-2003 8:01 |
|
|
Merci pour la solution et à bientôt |
|
|
ldiaz frontpage mioche
|
et pour lire des fichiers... , Posté le: 09-07-2005 10:14 |
|
|
Salut à tous,
j'ai un PB équivalent. Je cherche a remplacer des " par des ' dans un fichier PL/SQL
pour un fichier individuel je fais :
cat monFichier.sql | sed -e 's/"/'/' >nouveauFichier.sql
Ca marche bien, le problème c'est que j'ai 90 fichiers identiques a modifier.
Je pensais faire un script shell du genre
while read
mais je ne connais pas la syntaxe.
Je voudrais, dans le bon repertoire, faire une boucle qui fait le sed pour chaque fichier sql.
qq 'un à une idée ??
D'avance merci
Luis |
|
|
salemioche salemioche
|
urgent script shell , Posté le: 09-07-2005 10:48 |
|
|
Code: |
mkdir new
for f in $(\ls *.sql); do
cat $f | sed -e 's/"/'/' > new/$f
done
|
comme ca tu as tous les nouveaux fichiers dans le repertoire new |
|
|
ldiaz frontpage mioche
|
boucle , Posté le: 09-07-2005 18:18 |
|
|
Salut à tous,
super ça marche...
Merci encore
Luis |
|
|
ldiaz frontpage mioche
|
oups , Posté le: 10-07-2005 8:36 |
|
|
ça marche a un détail pret...
le sed a du mal avec les " et les '
comment faut il faire pour lui dire que ' c'est une chaine de caractère et non la quote de fin...
?
Merci de votre aide
Luis |
|
|
salemioche salemioche
|
urgent script shell , Posté le: 10-07-2005 9:05 |
|
|
il faut mettre un \ devant
|
|
|
ldiaz frontpage mioche
|
' et " , Posté le: 10-07-2005 11:56 |
|
|
Salut,
alors voila la ligne de code :
cat $f | sed -e 's/"/\'/' > $f
et voici l'erreur :
syntax error at line 4 : `'' unmatched
Qu'en pensez-vous ?? |
|
|
ldiaz frontpage mioche
|
' et " FIN , Posté le: 10-07-2005 12:40 |
|
|
Salut,
j'ai résolu le PB en inversant. Au lieu de faire
sed -e 's.... avec \'
je fais sed -e "s.... avec \"
et la ça marche
Merci
A+
Luis |
|
|
|