แยกอักขระก่อน () โดยใช้ grep


12

ฉันต้องการแยกอักขระก่อนอักขระ '(' โครงสร้างไฟล์ของฉันคือ:

ดอกกุหลาบ (ดี) OOK

เดซี่ () ไม่มี

ลิลลี่ (ไม่ดี) ปรับ

ดอกทานตะวัน () มีความสุข

ฉันต้องการไฟล์ที่ส่งออกในรูปแบบของ:

rose

daisy

lilly

sunflower

ใครสามารถบอกคำสั่งนี้ .....

awk, grep หรือ sed ดีกว่า ...


awk -F "(" '{พิมพ์ $ 1}' ไฟล์ฉันลองใช้คำสั่งนี้และทำงานได้ฉันต้องการทราบคำสั่งใน grep ...
Rincy Raphael

อัปเดตคำตอบ
cuonglm

คำตอบ:



7

การใช้cut:

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

daisy

lilly

sunflower

การใช้sed:

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

daisy

lilly

sunflower

4
โปรดทราบว่าพฤติกรรมจะแตกต่างกันหากมีมากกว่าหนึ่ง(ต่อบรรทัด
Stéphane Chazelas


0

คุณสามารถใช้คำสั่ง cut:

cut -f1 -d "(" file_name

1
สิ่งนี้แตกต่างจากคำตอบของ @rahmu ด้านบนอย่างไร
Chris Down

2
@ChrisDown มันมีรูปแบบไม่ดีโดยไม่มีคำอธิบายใด ๆ ?
Kiwy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.