Soustraire certaines parties d'un fichier

Résolu/Fermé
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - Modifié le 12 déc. 2017 à 10:40
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - 12 déc. 2017 à 11:03
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
A voir également:

3 réponses

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié le 12 déc. 2017 à 10:40
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
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
12 déc. 2017 à 10:51
C'est parfait ! :-)

Merci beaucoup pour votre aide.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié le 12 déc. 2017 à 10:56
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
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
12 déc. 2017 à 11:03
Salut Dubcek,
ça marche aussi.
Merci beaucoup ! :-)
0
UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 157
12 déc. 2017 à 10:58
Salut,

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

0