Changer de place une ligne dans un fichier

viellepe -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je cherche à trier d'une façon particulière un fichier.
Je prend un exemple pour être plus clair, je suppose le fichier suivant:

fichier.txt :
toto 12
tata 11
tutu 58
titi 49

j'aimerais une commande bash qui me permette de placer la ligne commençant par tutu en position 1 dans mon fichier. merci de votre aide, je suppose qu'avec la commande sed c'est jouable mais je ne vois pas comment ...
Configuration: Windows XP
Firefox 3.5.6

4 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    possible aussi avec ed
    $ cat a1
    toto 12
    tata 11
    tutu 58
    titi 49 
    $ echo -e '/tutu/m0\nwq\n' | ed -s a1
    $ cat a1
    tutu 58
    toto 12
    tata 11
    titi 49 
    $ 
    
    1
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      Possible et plus simple, merci ;-))
      0
      1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        en ces temps de congrès de sauvetage de la biodiversité, sauvons les très très vieilles commandes.
        ca permet d'inverser un fichier, avant l'invention de la commande rev. fonctionne aussi dans vi.
        $ cat a1
        1
        2
        3
        4
        5
        6
        $ echo -e 'g/^/m0\nwq\n' | ed -s a1
        $ cat a1
        6
        5
        4
        3
        2
        1
        $ 
        0
      2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Et tac est pas mal aussi dans son genre, et toc ;-))
        0
      3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        juste, je me suis xuaecnip sel égnalém
        0
      4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
         
        evarg ôp tse'c ,sap stniep en ut euq tnaT

        ;-))
        0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    jp@MDK:~/tmpfs ssh$ cat plop
    toto 12
    tata 11
    tutu 58
    titi 49
    
    jp@MDK:~/tmpfs ssh$ sed ':z;/^tutu/! {1!H;1h;d;bz};G;:y;n;$!by' plop
    tutu 58
    toto 12
    tata 11
    titi 49
    
    jp@MDK:~/tmpfs ssh$

    ;-))
    0
  3. viellepe
     
    merci à tous pour votre rapidité et vos compétences :-)
    0
  4. lami20j
     
    Salut,

    Pour s'amuser seulement et dans l'esprit qu'il y a plusieurs solutions possibles.

    lami20j@debian:~$ cat plop
    toto 12
    tata 11
    tutu 58
    titi 49
    lami20j@debian:~$ a=$(grep tutu plop;grep -v tutu plop);echo "$a">plop
    lami20j@debian:~$ cat plop
    tutu 58
    toto 12
    tata 11
    titi 49
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      Juste pour t'amuser, tu pourrais te réinscrire, non ? ;-))

      Bien vu pour le grep ;-)
      0