Suppression de m lignes modulo 2m avec Sed
Résolu
huitsept
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
huitsept Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
huitsept Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Suppression de m lignes modulo 2m avec Sed
- Forcer suppression fichier - Guide
- Partage de photos en ligne - Guide
- Suppression compte gmail - Guide
- Suppression page word - Guide
- Outil de suppression mcafee - Guide
4 réponses
Salut,
Il a combien de lignes ton fichier ?
C'est quoi la valeur de "m" ?
J'ai peut être une solution, mais ça dépend fortement des 2 réponses précédentes.
Ce n'est peut être pas l'idéal mais faute de mieux...
Il a combien de lignes ton fichier ?
C'est quoi la valeur de "m" ?
J'ai peut être une solution, mais ça dépend fortement des 2 réponses précédentes.
Ce n'est peut être pas l'idéal mais faute de mieux...
Bonjour et merci de ton intérêt pour ma question.
Pour le fichier qui m'intéresse, la valeur de m est de 8192 et le fichier a une taille de l'ordre du Go (le nombre de lignes est un multiple de 8192).
Pour le fichier qui m'intéresse, la valeur de m est de 8192 et le fichier a une taille de l'ordre du Go (le nombre de lignes est un multiple de 8192).
Bon voilà mon raisonnement...
Un fichier (plop) contenant 30000 lignes comme suit :
Je découpe ce fichier en 30 fichiers de 1000 lignes chacun avec la commande split (l'option "-d" sert à produire des fichiers numérotés de x00 à x29) :
Ce qui me donne donc :
Il ne me reste plus qu'à concaténer les fichiers impairs dans un fichier final :
Un fichier (plop) contenant 30000 lignes comme suit :
$ cat plop Ligne 1 Ligne 2 Ligne 3 Ligne 4 Ligne 5 ... Ligne 29995 Ligne 29996 Ligne 29997 Ligne 29998 Ligne 29999 Ligne 30000
Je découpe ce fichier en 30 fichiers de 1000 lignes chacun avec la commande split (l'option "-d" sert à produire des fichiers numérotés de x00 à x29) :
$ split -d -l1000 plop
Ce qui me donne donc :
$ ls plop x01 x03 x05 x07 x09 x11 x13 x15 x17 x19 x21 x23 x25 x27 x29 x00 x02 x04 x06 x08 x10 x12 x14 x16 x18 x20 x22 x24 x26 x28
Il ne me reste plus qu'à concaténer les fichiers impairs dans un fichier final :
$ cat *[13579] > final
$ less final Ligne 1001 Ligne 1002 Ligne 1003 Ligne 1004 Ligne 1005 Ligne 1006 Ligne 1007 Ligne 1008 Ligne 1009 Ligne 1010 ... Ligne 1995 Ligne 1996 Ligne 1997 Ligne 1998 Ligne 1999 Ligne 2000 Ligne 3001 Ligne 3002 Ligne 3003 Ligne 3004 Ligne 3005 ... Ligne 27995 Ligne 27996 Ligne 27997 Ligne 27998 Ligne 27999 Ligne 28000 Ligne 29001 Ligne 29002 Ligne 29003 Ligne 29004 Ligne 29005 ... Ligne 29995 Ligne 29996 Ligne 29997 Ligne 29998 Ligne 29999 Ligne 30000 $
<ModeLeCompteEstBonON>
Pas mieux ;-)
<ModeLeCompteEstBonOFF>
Les deux fonctionnent (avec l'option -a4 avec split pour permettre des suffixes de longueur 4) et permettent de résoudre mon problème.