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
>
>