ekstrak karakter sebelum () menggunakan grep


12

Saya perlu mengekstraksi karakter sebelum karakter '('. Struktur file saya adalah:

mawar (bagus) ook

daisy () no

lilly (buruk) baik-baik saja

bunga matahari () bagus

Saya perlu file output dalam bentuk:

rose

daisy

lilly

sunflower

adakah yang bisa memberitahu perintah untuk ini .....

awk, grep atau sed lebih disukai ...


awk -F "(" '{print $ 1}' file saya mencoba perintah ini dan berfungsi. Saya ingin tahu perintah dalam grep ...
Rincy Raphael

Jawaban yang diperbarui.
cuonglm

Jawaban:



7

Menggunakan cut:

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

daisy

lilly

sunflower

Menggunakan sed:

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

daisy

lilly

sunflower

4
Perhatikan bahwa perilaku akan berbeda jika ada lebih dari satu (per baris.
Stéphane Chazelas

3

Sebuah awksolusi:

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

daisy

lilly

sunflower

atau GNU grep:

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

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

0

Anda dapat menggunakan perintah cut:

cut -f1 -d "(" file_name

1
Bagaimana ini berbeda dari jawaban yang diberikan oleh @rahmu di atas?
Chris Down

2
@ChrisDown, formatnya buruk tanpa penjelasan?
Kiwy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.