2012-09-19 4 views
1

셸 스크립트의 파일에서 특정 패턴으로 시작하는 줄에서 문자열을 추출하고 싶습니다. 예 : 나는bash에서 파일의 특정 줄을 추출하는 방법은 무엇입니까?

hi to_RAm 
hello to_Hari 
hello to_kumar 
bye to_lilly 

출력

이 사람이 나를 도울 수
to_Hari 
to_kumar 

해야한다 인사에서 시작하는 줄에 문자열을 원하는?

+0

"to_hari"의 대소 문자를 변경 하시겠습니까? –

+0

no, question edited – Jagan

답변

1

sed이 가장 적합한 도구입니다 :

grep -oP '(?<=hello).*' 
1

사용 그렙 :

grep ^hello file | awk '{print $2}' 

^이 "안녕하세요"로 시작하는 라인과 일치하는 것입니다. 이것은 두 번째 단어를 인쇄하려고한다고 가정합니다.

당신은 다음 첫 번째를 제외한 모든 단어를 인쇄하려면 :

sed -n 's/^hello //p' 
+1

여기서'awk'와 함께'grep'을 사용할 필요가 없습니다; 'awk' 스크립트에서 정규식을 지정하십시오 : awk '/^hello/{print $ 2}'file'. – chepner

1

당신은 GNU 그렙 (grep)의 펄 호환 정규 표현식에를 사용하고 lookbehind을 사용할 수

grep ^hello file | awk '{$1=""; print $0}' 
관련 문제