2016-08-17 7 views
0

나는 다음과 같은 텍스트가 포함 된 파일 example.txt 있습니다그렙 텍스트 :

내가 grep을하고 [myword]:

시도 후 grep [myword] /tmp/example.txt | cut -d ':' -f 2을 테스트 할 만 텍스트를 표시 할 필요가

[one]: bla bla bla onebla twobla 
[two]: hey heya noheya 
[onemore]: i got mad and etc 

[myword]에 대괄호 뒤에 모두 인쇄되지만 어떻게 모든 것을 필요로하는 것만 얻을 수 있습니까?

+0

이 더'[myword]'당신이 뭘 하려는지 입력 – anubhava

+0

에서? 없습니다 – Chris

+0

특정 대괄호 뒤에있는 테스트 만 인쇄해야합니다. 예를 들어'[one] :'만 출력하고'[two] :'또는'[onemore] :'줄 다음에 출력하지 않도록 출력을 bla bla bla onebla twobla로 출력합니다. '[onemore] :'이후에 모두 출력하고 싶다면 올바른 출력은''mad and etc'가되어야합니다. – alya

답변

0

당신은 첫 번째 문구 [something]:을 절감하고

그렙와 sed 사용하여 나머지를 얻을 수 있습니다 :

$ grep -w "\[onemore\]:" words.txt | sed 's/\[onemore\]://g' 
i got mad 

그렙 및 AWK : 모든

$ grep -w "\[onemore\]:" words.txt | awk -F: '{print $2}' 
i got mad 
+0

'Grep [more more : words.txt] 결과 '나는 화가있어'큰 따옴표로를 추가하려면 단어/문구 – alya

+0

@alya 무엇이든 : 는'그렙 -o -w 가 발생합니다 words.txt' "내가 화가있어"'내가 얻을 필요 나는 화가났다. " –

+0

@alya : 지난 코멘트에 대해 유감스럽게 생각하고 정확한 grep 입력을 찾지 못했습니다. 나는 당신이 원하는 것을 줄 내 대답을 편집했습니다. –

0

감사합니다! 유닉스 & 리눅스에서 다른에 대답을 얻었다 :

$ awk '/\[myword\]/{sub(/^[^]]*\]:[[:blank:]]*/,"");print}' example.txt

또는

$ awk '/\[myword\]/{sub(/^[^]]*\]:[[:blank:]]*/,"");print}' example.txt