Soustraire certaines parties d'un fichier [Résolu/Fermé]

Signaler
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020
-
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020
-
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

Messages postés
29704
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 avril 2021
7 066
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
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020

C'est parfait ! :-)

Merci beaucoup pour votre aide.
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 251
hello
$ sed 's/^K//; /\.text$/d' toto.txt
1958219
1958235
1958236
1969986
1969998
1969999
1970000
1970001
1970034
1970039
1970058
1970059
1970060
1970061
1970062
1970083
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020

Salut Dubcek,
ça marche aussi.
Merci beaucoup ! :-)
Messages postés
1156
Date d'inscription
lundi 2 mai 2016
Statut
Contributeur
Dernière intervention
22 décembre 2020
147
Salut,

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