Supprimer recursivement fin de ligne

Résolu
Poireau007 Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour tout le monde !

J'ai un fichier qui comporte les lignes suivantes :

Produit: cartes - 12300
Produit: papier - 45600
Produit: encre - 65755

je cherche une fonction (sed ou awk) qui me permettrait de récupérer un fichier de type

cartes
papier
encre

j'arrive à supprimer le début de ligne avec sed car il est identique mais pour supprimer tout ce qui est après " - " c'est plus difficile ...
Merci pour votre aide !
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,
jp@MDK:~/tmpfs ssh$ cat plop
Produit: cartes - 12300
Produit: papier - 45600
Produit: encre - 65755

jp@MDK:~/tmpfs ssh$ sed -n 's/.*: \(.*\) -.*/\1/p' plop
cartes
papier
encre

jp@MDK:~/tmpfs ssh$
;-))
2
Poireau007 Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   15
 
Merci pour ta réponse :)
Je ne suis pas très bon en expressions régulières et je voudrais comprendre la réponse si possible :))))


pour : -n
j'ai lu que ça permet de supprimer l'affichage automatique de l'espace de travail, mais ce n'est pas très clair...
http://jp.barralis.com/linux-man/man1/sed.1.php

pour : .*:
ça c'est pour dire n'importe quelle chaine de caractères avant les ":" , c'est bien ça ?

pour : \(.*\)
pour ça, je ne comprend pas trop. j'ai lu que "\(" et "\)" permetent d'isoler des sous chaines. Cela permet d'isoler une expression dans une expression ? J'ai un peu de mal a conceptualiser la chose...

pour : -.*
Pareil que tout à l'heure, il s'agit de toute chaine de caractere

pour : \1
c'est pour récupérer la première sous chaine d'après ce que j'ai compris

pour : p
la je sais pas trop, je comprend la distinction entre p et g ... c'est pour lire ligne par ligne non ?

Désolé pour toutes ces questions, c'est pour mieux comprendre !
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Re-

Tu as quasiment tout bon ;-)

Le "-n" c'est effectivement pour empêcher l'affichage systématique ou que sur demande avec le paramètre "p".
Voir dans la FAQ de SED les 3 parties intitulées "Introduction à SED".

Pour les sous-expressions voir plus précisément ;-)
0