Suppression de m lignes modulo 2m avec Sed
Résolu/Fermé
huitsept
Messages postés
3
Date d'inscription
vendredi 31 mai 2013
Statut
Membre
Dernière intervention
1 juin 2013
-
31 mai 2013 à 15:54
huitsept Messages postés 3 Date d'inscription vendredi 31 mai 2013 Statut Membre Dernière intervention 1 juin 2013 - 1 juin 2013 à 12:27
huitsept Messages postés 3 Date d'inscription vendredi 31 mai 2013 Statut Membre Dernière intervention 1 juin 2013 - 1 juin 2013 à 12:27
A voir également:
- Suppression de m lignes modulo 2m avec Sed
- Forcer suppression fichier - Guide
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Suppression page word - Guide
- Suppression cookies - Guide
4 réponses
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
1 juin 2013 à 09:02
1 juin 2013 à 09:02
hello
essayer
essayer
m=8192; awk -v m=$m '!((NR-1)%m) {n=!n} !n' fichier
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
31 mai 2013 à 18:01
31 mai 2013 à 18:01
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...
huitsept
Messages postés
3
Date d'inscription
vendredi 31 mai 2013
Statut
Membre
Dernière intervention
1 juin 2013
31 mai 2013 à 18:22
31 mai 2013 à 18:22
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).
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
31 mai 2013 à 18:46
31 mai 2013 à 18:46
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 $
1 juin 2013 à 09:56
<ModeLeCompteEstBonON>
Pas mieux ;-)
<ModeLeCompteEstBonOFF>
1 juin 2013 à 12:27
Les deux fonctionnent (avec l'option -a4 avec split pour permettre des suffixes de longueur 4) et permettent de résoudre mon problème.