grep을 사용하여 () 전에 문자를 추출하십시오.


12

'('문자 앞에 문자를 추출해야합니다. 파일 구조는 다음과 같습니다.

장미 꽃

데이지 ()

릴리 (나쁜) 파인

해바라기 () 좋은

다음과 같은 형식으로 출력 파일이 필요합니다.

rose

daisy

lilly

sunflower

아무도 이것에 대한 명령을 말할 수 있습니까 .....

awk, grep 또는 sed가 바람직합니다 ...


awk -F "(" '{print $ 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

3

awk솔루션 :

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

daisy

lilly

sunflower

또는 GNU grep:

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

5
또는grep -o '^[^(]*'
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.