tabasko a écrit :
Salut a tous,
J'expose ma requete:
J'ai un fichier texte (fichier1), suposons qu'il contienne juste la lettre "a".
J'ai un autre fichier texte (fichier2) qui contient "a b".
J'ai un troisieme et dernier fichier qui contient "b c".
Je cheche a faire un script qui me donne un fichier final qui contiendrait :
a b c
(L'exemple a l'air simple, mais bon mes 3 fichiers contiennent plusieurs dixaines de millier lignes chacun).
Je pense qu'il existe peut etre mieux qu'un script de plusieurs millier de ligne en sed s/a/b/g | sed s/b/c/g > fichier4 ou autre chose je sais pas ... je suis pas programmeur a la base Merci pour votre aide.
|
je propose une solution tres simple sans sed....
kneko@linux:~/test> mkdir test
kneko@linux:~/test> cd test
kneko@linux:~/test/test> cat > ab`date +"%Y%m%d"`
f
f
f
au
f
f
f
kneko@linux:~/test/test> cat > ac`date +"%Y%m%d"`
d
d
bu
d
kneko@linux:~/test/test> cat > ad`date +"%Y%m%d"`
cv
cv
cu
cv
fsdf
kneko@linux:~/test/test> cat > `date +"%Y%m%d"`.sh
#!/bin/sh
LOG=`date +"%Y%m%d-%h%m"`
grep au *20021214 > $LOG
grep bu *20021214 >> $LOG
grep cu *20021214 >> $LOG
more $LOG | cut -d':' -f2 > $LOG
ls -l
more $LOG
yes | rm -f $LOG
exit 0
kneko@linux:~/test/test> chmod 744 `date +"%Y%m%d"`.sh
kneko@linux:~/test/test> ll
?? 16
-rwxr--r-- 1 kneko users 169 12? 14 22:30 20021214.sh
-rw-r--r-- 1 kneko users 15 12? 14 22:24 ab20021214
-rw-r--r-- 1 kneko users 9 12? 14 22:25 ac20021214
-rw-r--r-- 1 kneko users 17 12? 14 22:25 ad20021214
kneko@linux:~/test/test> ./20021214.sh
?? 20
-rw-r--r-- 1 kneko users 9 12? 14 22:31 20021214-12?12
-rwxr--r-- 1 kneko users 169 12? 14 22:30 20021214.sh
-rw-r--r-- 1 kneko users 15 12? 14 22:24 ab20021214
-rw-r--r-- 1 kneko users 9 12? 14 22:25 ac20021214
-rw-r--r-- 1 kneko users 17 12? 14 22:25 ad20021214
au
bu
cu
kneko@linux:~/test/test> cd ..
kneko@linux:~/test> rm -r test
|
comment ca marche ?
grep XXXX DANS_FICHIERS > LOG
groupe que les lignes contenant XXXX dans le fichier LOG
ensuite je coupe (CUT) les colones inutiles ici ce qui est avant le ':' et le ':' lui meme
si XXXX est coince dans une phrase logique exemple
nnnnnnnnnnn:XXXX,vvvvvvvvvvvv
en faisant 2 cuts un pour eliminer le debut (ici les 'n' et un deuxieme pour virer la fin (ici les 'v', tu obtients que les XXXX
bref en plus de ca... tu copie ton resultat dans le meme fichier log puisque les anciennes infos ne te sont plus utiles, tu affiche le resultat.
et pour finir tu efface le fichier log pour pas laisser de traces et donc etre bien propre...
dans ton cas genere le fichier log mais ne l'efface pas ....
puisque tu veux un fichier4....
---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault fpussault@caramail.com