Soustraire certaines parties d'un fichier

Résolu
Ka-El Messages postés 279 Statut Membre -  
Ka-El Messages postés 279 Statut Membre -
Bonjour,

Je souhaiterais retravailler un fichier en enlevant certaines lignes et certains caractères.
Voici comment se présente actuellement mon fichier "toto.txt" :

cat toto.txt
K1958219
K1958235
K1958236
K1969986
K1969986.text
K1969998
K1969999
K1970000
K1970001
K1970034
K1970034.text
K1970039
K1970058
K1970058.text
K1970059
K1970060
K1970061
K1970062
K1970083


Et voici le résultat attendu :

1958219
1958235
1958236
1969986
1969998
1969999
1970000
1970001
1970034
1970039
1970058
1970059
1970060
1970061
1970062
1970083


Quelle commande puis-je appliquer sur le fichier "toto.txt" pour ne plus avoir de "K" en début de ligne et en même temps supprimer les lignes qui ont une extension ".text" ?

Merci d'avance pour votre aide !
Ka-El

3 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Bonjour,

    Tu peux filtrer des lignes avec
    grep
    , et procéder à des remplacements avec
    sed
    :

    grep -v "\.text\s*$" toto.txt | sed -e 's/K\(.*\)/\1/'
    1958219
    1958235
    1958236
    1969986
    1969998
    1969999
    1970000
    1970001
    1970034
    1970039
    1970058
    1970059
    1970060
    1970061
    1970062
    1970083


    Pour plus d'explications :
    - man sed
    - man grep
    - tubes

    Bonne chance
    0
    1. Ka-El Messages postés 279 Statut Membre
       
      C'est parfait ! :-)

      Merci beaucoup pour votre aide.
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    $ sed 's/^K//; /\.text$/d' toto.txt
    1958219
    1958235
    1958236
    1969986
    1969998
    1969999
    1970000
    1970001
    1970034
    1970039
    1970058
    1970059
    1970060
    1970061
    1970062
    1970083
    0
    1. Ka-El Messages postés 279 Statut Membre
       
      Salut Dubcek,
      ça marche aussi.
      Merci beaucoup ! :-)
      0
  3. UnGnU Messages postés 1468 Statut Contributeur 158
     
    Salut,

    Ou tout simplement :
    sed -n '/text$/!{s/^K//p}' fich
    ;-)

    0