Sed ou awk ou ...
Résolu
trauqnej
Messages postés
154
Date d'inscription
Statut
Membre
Dernière intervention
-
trauqnej Messages postés 154 Date d'inscription Statut Membre Dernière intervention -
trauqnej Messages postés 154 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un fichier (voir ci-dessous pour un exemple) qui ne contient qu'une ligne.
Je voudrais qu'à la rencontre d'un nombre supérieur à 2000 un retour chariot s'insère.
Je pensais que sed pouvait intégrer de telle fonction du style :
sed 'occurrences>2000 s/occurrence/occurrence\n/g' fichier.lorem
Mais j'ai pas trouvé.
J'ai essayé awk avec :
awk ' ($NF > 2000) {$NF=$NF"\n"}; {print $0}' fichier.lorem
Mais vu qu'il n'y a qu'une ligne, il me donne le dernier champ de la ligne.
et pis j'ai essayé d'autres trucs encore moins convaincant.
Donc voilà ce qui m'amène à poser cette question :
Avez-vous un idée pour ce traitement ?
fichier exemple : fichier.lorem :
Lorem 4521ipsum dolor sit amet, consectetur adipisicing 15 elit, sed do eius3562mod tempor incididunt 5124ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud 2 exercitation ullamco laboris nisi ut 65231 aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 5124 cupidatat non 4584proident, sunt in culpa qui officia deserunt 2 mollit anim id est laborum.
cordialement,
<config>Debian 6 , Iceweasel, postgresql</config>
J'ai un fichier (voir ci-dessous pour un exemple) qui ne contient qu'une ligne.
Je voudrais qu'à la rencontre d'un nombre supérieur à 2000 un retour chariot s'insère.
Je pensais que sed pouvait intégrer de telle fonction du style :
sed 'occurrences>2000 s/occurrence/occurrence\n/g' fichier.lorem
Mais j'ai pas trouvé.
J'ai essayé awk avec :
awk ' ($NF > 2000) {$NF=$NF"\n"}; {print $0}' fichier.lorem
Mais vu qu'il n'y a qu'une ligne, il me donne le dernier champ de la ligne.
et pis j'ai essayé d'autres trucs encore moins convaincant.
Donc voilà ce qui m'amène à poser cette question :
Avez-vous un idée pour ce traitement ?
fichier exemple : fichier.lorem :
Lorem 4521ipsum dolor sit amet, consectetur adipisicing 15 elit, sed do eius3562mod tempor incididunt 5124ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud 2 exercitation ullamco laboris nisi ut 65231 aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 5124 cupidatat non 4584proident, sunt in culpa qui officia deserunt 2 mollit anim id est laborum.
cordialement,
<config>Debian 6 , Iceweasel, postgresql</config>
A voir également:
- Sed ou awk ou ...
- Awk strftime - Forum Shell
- Remplacez le mot sed par le mot mais dans tout le texte. combien de caractères contient le document suite à cette modification (en incluant les espaces) ? - Guide
- Comptage des caractères dans Word ✓ - Forum Word
- Sed et ses caprices (ou les miens) ✓ - Forum Linux / Unix
- Sed crlf - Astuces et Solutions
2 réponses
Salut,
;-))
$ cat plop Lorem 4521ipsum dolor sit amet, consectetur adipisicing 15 elit, sed do eius3562mod tempor incididunt 5124ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud 2 exercitation ullamco laboris nisi ut 65231 aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 5124 cupidatat non 4584proident, sunt in culpa qui officia deserunt 2 mollit anim id est laborum. $ sed 's/[2-9][0-9]\{3,\}/&\n/g' plop Lorem 4521 ipsum dolor sit amet, consectetur adipisicing 15 elit, sed do eius3562 mod tempor incididunt 5124 ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud 2 exercitation ullamco laboris nisi ut 65231 aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 5124 cupidatat non 4584 proident, sunt in culpa qui officia deserunt 2 mollit anim id est laborum. $
;-))
sed 's/ [2-9][0-9]\{3,\}/&\n/g' plop
merci beaucoup