GNT sans publicité, site mobile, fonctionnalitées exclusives...

trier un fichier en ligne (perl sort inline)

Le
Cyrille Lefevre
Bonjour,

est-il possible de faire qqc comme :

perl -e 'print sort <STDIN>' file

avec l'option -i ?

l'idée est de trier le fichier en ligne

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
Lire les 9 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Marc
Le #23249171
Cyrille Lefevre wrote:

est-il possible de faire qqc comme :

perl -e 'print sort <STDIN>' file

avec l'option -i ?

l'idée est de trier le fichier en ligne...



"en ligne" = "en place" ? Ou avec une seule ligne de commande ?
Pourquoi pas :
sort -o file file
?
Damien Wyart
Le #23249471
* Cyrille Lefevre in fr.comp.os.unix:

est-il possible de faire qqc comme :

perl -e 'print sort <STDIN>' file

avec l'option -i ?



Voici deux propositions :

perl -lp0 -i -e '$_ = join "n"=> sort split /n/' thefile

perl -aF"n" -lp0 -i -e '$_=join$,' thefile

--
DW
Damien Wyart
Le #23249481
* Cyrille Lefevre in fr.comp.os.unix:
est-il possible de faire qqc comme :

perl -e 'print sort <STDIN>' file

avec l'option -i ?



Voici deux propositions :

perl -lp0 -i -e '$_ = join "n" => sort split /n/' thefile

perl -aF"n" -lp0 -i -e '$_=join$,' thefile

--
DW
Marc Boyer
Le #23250101
Le 31-03-2011, Marc
l'idée est de trier le fichier en ligne...



"en ligne" = "en place" ? Ou avec une seule ligne de commande ?
Pourquoi pas :
sort -o file file



Parce que ça ne marchera que sur les petits fichiers, ceux
ou les E/S bufferisée font qu'on lira tout avant de tout écrire ?

Comme d'habitude, c'est facile à faire de façon naive:
sort file -o /tmp/file ; mv /tmp/file file
et bien plus lourd de façon robuste (mktemp, test de succès)

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?a...amp;id_mot0
Marc
Le #23250211
Marc Boyer wrote:

Le 31-03-2011, Marc
l'idée est de trier le fichier en ligne...



"en ligne" = "en place" ? Ou avec une seule ligne de commande ?
Pourquoi pas :
sort -o file file



Parce que ça ne marchera que sur les petits fichiers, ceux
ou les E/S bufferisée font qu'on lira tout avant de tout écrire ?



Posix garantit explicitement que ça marche...
(contrairement à sort file > file)
Publicité
Suivre les réponses
Poster une réponse
Anonyme