OVH Cloud OVH Cloud

Actions sur un fichier texte

6 réponses
Avatar
Gabriel Kerneis
Bonjour,
deux questions à propos de fichiers textes. Quelqu'un sait-il comment :
- mélanger aléatoirement les lignes d'un fichier ? (le fichier en
question étant une liste de fichiers, une réponse indiquant comment
mélanger la sortie de "ls" m'intéresse aussi)
- afficher seulement les lignes 27 à 42 d'un fichier texte ? (27 et 42
étant évidemment des nombres quelconques)

Tout ça en bash si possible.

Merci d'avance,
--
Gabriel Kerneis

6 réponses

Avatar
Rakotomandimby (R12y) Mihamina
( Tue, 03 May 2005 08:01:51 +0000 ) Gabriel Kerneis :

Bonjour,
deux questions à propos de fichiers textes. Quelqu'un sait-il comment :
- mélanger aléatoirement les lignes d'un fichier ? (le fichier en
question étant une liste de fichiers, une réponse indiquant comment
mélanger la sortie de "ls" m'intéresse aussi)


J'ai deja initié un thread pour ca, avec des reponses de toutes sortes,
tres interessantes:
http://groups-beta.google.com/group/fr.comp.os.unix/msg/3b42cb009683d2c6?hl=en

Ce que tu recherches est dans les reponses au messages dont je t'ai donné
l'url.

- afficher seulement les lignes 27 à 42 d'un fichier texte ? (27
et 42
étant évidemment des nombres quelconques)


avec sed:

Afficher la 27 eme ligne se fait avec:

sed -n 27p fichier.txt



--
Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois!
La preuve http://www.google.fr/search?q=serveur+dedie
Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)

Avatar
Marc Boyer
Gabriel Kerneis wrote:
deux questions à propos de fichiers textes. Quelqu'un sait-il comment :
- mélanger aléatoirement les lignes d'un fichier ? (le fichier en
question étant une liste de fichiers, une réponse indiquant comment
mélanger la sortie de "ls" m'intéresse aussi)


Je sais pas.

- afficher seulement les lignes 27 à 42 d'un fichier texte ? (27 et 42
étant évidemment des nombres quelconques)


sed -n '27,42p'

Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.

Avatar
Pascal Bourguignon
Gabriel Kerneis writes:

Bonjour,
deux questions à propos de fichiers textes. Quelqu'un sait-il comment :
- mélanger aléatoirement les lignes d'un fichier ? (le fichier en
question étant une liste de fichiers, une réponse indiquant comment
mélanger la sortie de "ls" m'intéresse aussi)
- afficher seulement les lignes 27 à 42 d'un fichier texte ? (27 et 42
étant évidemment des nombres quelconques)

Tout ça en bash si possible.


Mélanger aléatoirement, ça peut se faire en triant sur une clé
aléatoire. On peut donc le faire en préfixant un nombre aléatoire à
chaque ligne, en triant, et en enlevant le nombre aléatoire.

sed permet de filtrer facilement des fichiers texte, et donc de
sélectionner deux lignes, $K et $L.

Donc:

man bash
man sort
man sed


--
__Pascal Bourguignon__ http://www.informatimago.com/
The rule for today:
Touch my tail, I shred your hand.
New rule tomorrow.

Avatar
Gabriel Kerneis
Rakotomandimby (R12y) Mihamina a écrit :
( Tue, 03 May 2005 08:01:51 +0000 ) Gabriel Kerneis :
Bonjour,
deux questions à propos de fichiers textes. Quelqu'un sait-il comment :
- mélanger aléatoirement les lignes d'un fichier ? (le fichier en
question étant une liste de fichiers, une réponse indiquant comment
mélanger la sortie de "ls" m'intéresse aussi)
J'ai deja initié un thread pour ca, avec des reponses de toutes sortes,

tres interessantes
J'avais cherché, j'avais pas trouvé. Merci beaucoup.


--
Gabriel Kerneis


Avatar
TiChou
Dans le message <news:42772fef$0$290$,
*Gabriel Kerneis* tapota sur f.c.o.unix :

Bonjour,


Bonjour,

deux questions à propos de fichiers textes. Quelqu'un sait-il comment :
- mélanger aléatoirement les lignes d'un fichier ?


Je verrais bien la solution suivante en bash :

while IFS= read -r
do
printf '%st%sn' "$RANDOM" "$REPLY"
done < fichier | sort | cut -f2-

Tout ça en bash si possible.

Merci d'avance,


De rien.

--
TiChou

Avatar
Jérémy JUST
On 03 May 2005 08:01:51 GMT
Gabriel Kerneis wrote:

- mélanger aléatoirement les lignes d'un fichier ? (le fichier en
question étant une liste de fichiers, une réponse indiquant comment
mélanger la sortie de "ls" m'intéresse aussi)


En Perl, tu peux te baser sur cette FAQ:

$ perldoc -q shuffle


Ça donnera quelque chose comme ça:

$ ls -1 | perl -mList::Util=shuffle -e 'print join "", shuffle(<>)'



Tout ça en bash si possible.


Je ne l'ai pas fait en Bash, mais je l'ai fait debout sur un pied.
C'est une restriction du même ordre: inutile mais marrante.

--
Jérémy JUST