Inversion ligne a ligne fichier - BASH

Résolu/Fermé
Kaldoran Messages postés 137 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 21 juin 2015 - 30 mai 2013 à 18:27
Kaldoran Messages postés 137 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 21 juin 2015 - 30 mai 2013 à 21:50
Bonjour,

Une fois n'est pas coutume , je viens vous demander un peu d'aide ..
Voila plusieurs heures que je chercher sur internet comment inverser INTEGRALEMENT un fichier ligne a ligne :
C'est a dire au lieu d'avoir :

Ligne1
Ligne2 
Ligne3
Ligne4 

j'ai 

Ligne2
Ligne1
Ligne4
Ligne3


J'ai pu trouver ceci :

sed "1 {h;N;G;D}" tmp2
Inverse les 2 premières lignes

je suis donc partie sur une boucle de ce type
for i in $(seq 1 $(cat tmp2 | wc -l))
do 

	 if [ $(( $i % 2 )) -eq 1 ] ;then
       sed "$i{h;N;G;D}" tmp2 
    fi;
done  


Problème c'est que seul les 2 dernières lignes sont inversées.

Ma question est donc la suivante :
Comment inverser ligne a ligne un fichier texte en bash ?

Merci de vos réponses
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
30 mai 2013 à 18:31
Salut,

$ cat fich 
Ligne1
Ligne2 
Ligne3
Ligne4

$ sed -n 'h;n;G;p' fich 
Ligne2 
Ligne1
Ligne4
Ligne3

1
Kaldoran Messages postés 137 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 21 juin 2015 29
30 mai 2013 à 21:50
Merci beaucoup pour ta réponse , ainsi que ta rapidité de réponse.

Je met le problème en problème résolu grâce a toi. Merci
0