IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Problème de fichier tronqué lors d'un traitement avec AWK


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 92
    Points : 30
    Points
    30
    Par défaut Problème de fichier tronqué lors d'un traitement avec AWK
    Bonjour à tous,

    J'ai un petit problème

    voici mon fichier initial


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    1025#1025#N#N#1#100#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#1#150#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#1#200#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#250#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#300#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#350#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#600#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1026#1026#N#N#1#100#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1026#1026#N#N#1#150#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1026#1026#N#N#1#200#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1026#1026#N#N#1#250#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1026#1026#N#N#1#300#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1026#1026#N#N#1#350#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1028#1028#N#N#1#100#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1028#1028#N#N#1#150#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1028#1028#N#N#1#200#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1028#1028#N#N#1#250#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1028#1028#N#N#1#300#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1028#1028#N#N#1#350#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1028#1028#N#N#1#400#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#1#250#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#1#300#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#1#350#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#100#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#150#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#200#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#400#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#450#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#500#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    1025#1025#N#N#2#550#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38

    Voici ce qu mon programme effectue

    -- si le champs 1 contient 1025 alors il remplace le champ 1 par 'XXXXXXX'


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    cat -u ../LOG_ARCH/test.txt | awk -F'#' '{            
    			# si le champ1 contient le numéro  1025   
    			if ($1=='1025')                                  
    			{                                                 
    				$1="XXXXXXX"                              
    				OFS="#"                                   
    				print $0                                  
    			}                                                 
    			}' > ../LOG_ARCH/test.txt

    Le problème c'est que mon fichier en sortie est tronqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    XXXXXXX#1025#N#N#1#100#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#1#150#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#1#200#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#2#250#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#2#300#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#2#350#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#2#600#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#1#250#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#1#300#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#1#350#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#2#100#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#2#150#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#2#200#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#2#400#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#2#450#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#1025#N#N#2#500#0#001#19755#12589#10000004#45712#AB#192121#terminal#test1#test2#test4#test5#test6#test7#test8#test9#test10#test34#test38
    XXXXXXX#10

    Pourquoi ? et comment puis je régler le problème

    En vous remerciant,

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Utilise les balises quote pour tes fichiers entrée et sortie et les balises code pour ton code, sinon tu vas te faire taper sur les doigts par un modérateur.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 92
    Points : 30
    Points
    30
    Par défaut
    OUPS !!!
    Je pense que je vais lire les règles du forum car je ne vois pas de quoi tu me parles.

    Merci ggnore

  4. #4
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Par ailleurs il semble que tu n'aies en sortie QUE le lignes que awk a modifié.
    il faudrait que tu aies un else qui fasse
    même si
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 92
    Points : 30
    Points
    30
    Par défaut
    Bonne remarque, mais rassures toi j'ai aussi gérer mon else.

    J'ai juste allégé mon code pour le tester .

  6. #6
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Et bien redonne le code entier s'il te plaît.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 92
    Points : 30
    Points
    30
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    cat -u ../LOG_ARCH/test.txt | awk -F'#' '{ 
    # si le champ1 contient le numéro 1025 
    if ($1=='1025') 
    { 
    $1="XXXXXXX" 
    OFS="#" 
    print $0 
    } 
    else 
    { 
    print $0 
    } 
    }' > ../LOG_ARCH/test.txt

  8. #8
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Citation Envoyé par ggnore
    Utilise les balises quote pour tes fichiers entrée et sortie et les balises code pour ton code, sinon tu vas te faire taper sur les doigts par un modérateur.
    Bien vu ...

    Smortex ---> <--- delphine_lep

    Citation Envoyé par delphine_lep
    Je pense que je vais lire les règles du forum
    Bien

    Revenons a nos moutons...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    '{           
             # si le champ1 contient le numéro  1025   
             if ($1=='1025')                                 
             {                                                 
                $1="XXXXXXX"                             
                OFS="#"                                   
                print $0                                 
             }                                                 
             }'
    Problème #1 : le programme est entre {} ... La syntaxe c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    condition { programme }
    donc :
    Problème 2 : ton 1025 est entre simple quotes (') et ton programme aussi ... Donc soit tu remplace celles autour de 1025 par des double quotes ("), soit tu ne met rien autour... Apparament ca ne gène pas l'interpréteur, mais c'est pas une raison pour faire quelque chose de moche
    Temps que tu y est, tu peux mettre OFS à # seulement au debut (Cherche BEGIN dans man awk)

    Celà étant dit ... Je pencherai plus pour un accès au fichier par une autre application ou un manque de RAM ou autre ... comme source de ton problème.


    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  9. #9
    Membre habitué Avatar de tretsois
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 181
    Points : 196
    Points
    196
    Par défaut
    fait un "time cat ton_fichier" ensuite tu fait un "time awk ...."
    Tu compare les résultats ( pb du multitache ) Le cat affiche sur stdout le contenu du fichier alors que tu réécrit en meme temps sur ce meme fichier . le noyaux à charger plusieur lignes en mémoires mais pas tout le fichier et quand il revient lire le fichier son inode à changer.
    la vie est belle

  10. #10
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 92
    Points : 30
    Points
    30
    Par défaut
    et donc comment je peux résoudre ce problème ?

  11. #11
    Membre habitué Avatar de tretsois
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 181
    Points : 196
    Points
    196
    Par défaut
    tu est obligé de passer par un fichier temporaire ( deux fichiers = deux inodes)
    Ou plus simple si tu veux t'enteter avec un fichier tu vas voir les pro du perl.
    la vie est belle

  12. #12
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 92
    Points : 30
    Points
    30
    Par défaut
    J'ai posé le problème sur le forum PERL je vous tiendrais au courant de la réponse ...

    Merci en tout cas pour vos réponses ...

  13. #13
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Citation Envoyé par tretsois
    tu est obligé de passer par un fichier temporaire ( deux fichiers = deux inodes)
    Je suis pas d'accords

    Fait le test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat | awk '{ print $2 }'
    Tu remarquera que awk n'écrit sur la sortie standard qu'après avoir terminé de lire son entrée

    J'ai pas trop compris pourquoi tu parlais d'inode ... Si le fichier est là, il est réécrit, son inode ne change pas, sinon, le fichier est créé, tout simplement...

    Comme je l'ai dit dans un autre post, il ne faut pas confondre ;
    et
    Les 3 font la même chose.... Sauf si on redirige dans le fichier foo... Seul la première méthode est OK ! Avec les deux autres un seul programme est exécuté, et le fichier est effacé avant le traitement...

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  14. #14
    Membre habitué Avatar de tretsois
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 181
    Points : 196
    Points
    196
    Par défaut
    Désolé Smortex tu as raison,
    Comme j'avais integré la ligne de commande que tu avais donné sur la redirection dans un script à moi j'avais un changement d'inode j'ai réécrit le traitement simplement dans la console l'inode reste le même. dans mon script je fait un cp puis un rm par mesure de sécurité et non pas un mv)
    Donc j'avais bien un changement d'inode mais du à ma c******.
    Mais là, pour son pb de tronquage c'est pas normal alors, car si awk attends la ligne venant de cat qu'il fait ses opérations puis libere le fichier pour que cat reprenne la main comment se fait il que la derniere ligne soit tronqué car cat affiche ligne par ligne et que awk traite aussi par ligne ? y a t il eu un kill lors de lécriture? Car le pb de ram ne se pose pas sur un petit fichier comme çà car il y aurais du y avoir ecriture sur swap.
    la vie est belle

  15. #15
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    De toutes façons, le problème a été pris en charge par le forum Perl

    <troll on>... parce que Perl, c'est mieux ...<troll off>

    Ce n'est donc plus un problème de awk
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  16. #16
    Membre habitué Avatar de tretsois
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 181
    Points : 196
    Points
    196
    Par défaut
    C tres bien cette facon de penser 2eurocent, si qqun pose un probleme similaire on te l'orientera et tu lui dira de passer en perl ( perl est aussi un interpreteur de commande et le pb ne vient pas je pense de l'interpreteur de commande).
    la vie est belle

  17. #17
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 92
    Points : 30
    Points
    30
    Par défaut
    Je vais rester sur unix ... Le problème ce pose toujours ....

    une petite précision cependant c'est que lorsque mon fichier en entrée contient moins de lignes le fichier en sortie n'est pas tronqué !!!???

  18. #18
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Avec les données que tu as transmis au début de ce fil, je n'ai aucun problème lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    cat -u ../code4u/test.txt | awk -F'#' '
    BEGIN { OFS="#" } 
    { if ($1=="1025") 
      { $1="XXXXXXX" }
      { print $0 } 
    }' > ../code4u/test.txt
    ce qui me fournit exactement le même résultat que la solution perl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    perl -pi -e 's/^1025/XXXXXXX/' ../code4u/test.txt
    Après, de deux maux, je choisi le moindre et la solution perl me parait plus simple 8)

    Indépendamment de tout troll, il peut parfois être intéressant d'utiliser l'un où l'autre des interprèteurs de commande (awk ou perl, dans le cas présent) en fonction de leurs capacités respectives et de leur simplicité de programmation.

    On peut même utiliser l'approche "à la perl" pour fournir une solution acceptable en awk :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    cat -u ../code4u/test.txt | awk '
    /^1025/ 
      { gsub ("^1025", "XXXXXXX") } 
    { print $0 }' > ../code4u/test.txt
    voire même, mais je n'ai pas testé, supprimer la ligne avec le /^1025/ qui est totalement superflue et fusionner les deux blocs gsub et print en un seul ...

    <discussion_sterile on>A part ça, fallait pas l'envoyer vers le forum perl <discussion_sterile off>
    C'est une sorte d'humour, tretsois ...
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  19. #19
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 92
    Points : 30
    Points
    30
    Par défaut
    J'ai quand même essayé avec cette nouvel syntaxe l'histoire de ... mais bon j'en suis toujours au même point fichier tronque ...

    c'est peut être un problème de taille de fichier limité ou (je dis n'importe quoi peut être mais bon là je ne sais plus ou chercher) ...

  20. #20
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    pourquoi ne passes tu pas par un fichier temporaire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nomfictemp=`mktemp XXXXXX`
     
    traitement(fichier) > $nomfictemp
     
    mv $nomfictemp fichier
    où fichier est le nom du fichier que tu utilises.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/01/2008, 16h28
  2. Réponses: 0
    Dernier message: 20/07/2007, 15h35
  3. le fichier log explose lors de la mise ajour!
    Par Babylonne dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 21/09/2006, 16h49
  4. Réponses: 2
    Dernier message: 21/06/2005, 21h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo