extraire les caractères avant () en utilisant grep


12

J'ai besoin d'extraire les caractères avant le caractère '('. Ma structure de fichier est:

rose (bon) ook

marguerite () non

lilly (mauvais) bien

tournesol () sympa

J'ai besoin d'un fichier de sortie comme sous la forme de:

rose

daisy

lilly

sunflower

quelqu'un peut-il dire la commande pour cela .....

awk, grep ou sed sont préférables ...


awk -F "(" '{print $ 1}' file J'ai essayé cette commande et son fonctionnement. Je veux connaître la commande dans grep ...
Rincy Raphael

Réponse mise à jour.
cuonglm

Réponses:



7

En utilisant cut:

$ <file cut -d \( -f 1
rose

daisy

lilly

sunflower

En utilisant sed:

$ <file sed -e 's/\(.*\)(.*$/\1/'
rose

daisy

lilly

sunflower

4
Notez que le comportement sera différent s'il y en a plus d'un (par ligne.
Stéphane Chazelas

3

Une awksolution:

$ awk -F'(' '{print $1}' file
rose

daisy

lilly

sunflower

ou GNU grep:

grep -oP '.*?(?=\()' file

5
Ougrep -o '^[^(]*'
Stéphane Chazelas

0

Vous pouvez utiliser la commande cut:

cut -f1 -d "(" file_name

1
En quoi est-ce différent de la réponse donnée par @rahmu ci-dessus?
Chris Down

2
@ChrisDown c'est mal formaté sans aucune explication?
Kiwy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.