2010-06-21 1 views
1

나는 @도 선이로 시작하는 라인 뒤에 //로 시작하는으로 시작하는 라인을 grep을 할 grep을 할 수 @어떻게 이러한 라인

예 :

//text1 
@text2 
text3 

결과 :

//text1 
@text2 

grep 또는 다른 기본 유닉스 도구로 어떻게 할 수 있습니까?

답변

2
perl -ne 'print($z . $_) if m{^\@}; $z=(m{^//} ? $_ : "");' 

이 한 줄자는 한 번에 한 줄씩 STDIN을 처리합니다.

@으로 시작하는 행이 발견되면 $z의 내용 다음에 현재 행을 덤프합니다.

그런 다음 //으로 시작하는 줄을 발견하면이 줄을 변수 $z에 저장합니다. 회선이 이 아닌//으로 시작하면 $z 변수가 지워집니다.

나는 이것을 신속하게 테스트했으며 요구 된 일을해야한다.

grep 도구는 줄 사이의 상태를 기억하지 않습니다.

+0

완벽하게 작동합니다. 감사! – picknick