Re: [ssfr] découper un fichier

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


Salut,

Perso, je ferais un script en Python pour ça, ça serait assez simple (à
condition de connaître le langage, évidemment).

À chaud, je dirais :

    import os
    import sys

    # placer toutes les chaînes dans une liste
    f = open(sys.argv[1], 'r')
    strings = f.read().split('\n\n')
    f.close()

    # boucler toutes les cinquante chaînes
    # pour les enregistrer dans un fichier suffixé par un incrément
    for i in range(0, len(strings), 50):
        f = open('%s-%s'%(sys.argv[1], i/50), 'w')
        f.write('\n\n'.join(strings[i:i+50]))
        f.close()

Bien sûr faut tester.


Le 22/01/2014 08:53, steve a écrit :
> Salut,
>
>   J'ai un long fichier .po que je désire découper en plusieurs petits
> fichiers contenant chacun 50 chaînes et traductions. Le format général
> d'un fichier po est de la sorte :
>
> 20 lignes d'en-tête
> une ligne blanche
> une ou plusieurs lignes de contexte débutant par #
> msgid "chaîne à traduire" sur une ou plusieurs ligne
> msgstr "chaîne traduite" sur une ou plusieurs lignes
> une ligne blanche
> et on recommence
>
> On pourrait donc utiliser la ligne blanche avant le msgid comme motif de
> séparation. J'ai essayé d'utiliser csplit pour cela en faisant:
>
> csplit fichier.po /^$/ {50}
>
> qui va me générer 50 fichiers mais ne contenant qu'un msgid et un
> msgstr, et ça ne me convient donc pas, vu que je veux 50 chaînes dans
> chaque fichier. Il faudrait donc utiliser un compteur mais je ne sais
> pas vraiment comment aborder le problème. 
>
> Une idée lumineuse en ce mercredi matin ? 
>
> Merci,
> steve
>
>




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/