extraer los caracteres antes () usando grep


12

Necesito extraer los caracteres antes del carácter '('. Mi estructura de archivos es:

rosa (bueno) ook

margarita () no

lilly (mal) bien

girasol () bonito

Necesito el archivo de salida en forma de:

rose

daisy

lilly

sunflower

¿Alguien puede decir el comando para esto .....

awk, grep o sed son preferibles ...


awk -F "(" '' {print $ 1} 'archivo
Probé

Respuesta actualizada
Cuonglm

Respuestas:



7

Utilizando cut:

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

daisy

lilly

sunflower

Utilizando sed:

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

daisy

lilly

sunflower

44
Tenga en cuenta que el comportamiento será diferente si hay más de uno (por línea.
Stéphane Chazelas

3

Una awksolución:

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

daisy

lilly

sunflower

o GNU grep:

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

55
Ogrep -o '^[^(]*'
Stéphane Chazelas

0

Puede usar el comando de corte:

cut -f1 -d "(" file_name

1
¿Cómo es esto diferente de la respuesta dada por @rahmu arriba?
Chris Down

2
@ChrisDown está mal formateado sin ninguna explicación?
Kiwy
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.