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.