2014-01-24 3 views
0

은에 ...의 우리가 파일에 다음 텍스트가 있다고 가정 해 봅시다 오는 무슨 필요가 도움이는 AWK 명령 인쇄 반전

aeht 
mark 
tjae 
aejra 
ytha 
mark 
yeaja 

가있는 것, 단어 mark을 찾을 때까지 그래서 꼭 시작 인쇄입니다 인쇄하지 않고 awk의 동작을 변경하고 다음 줄이 인쇄 될 때까지 다음 줄 인쇄를 중지합니다. mark 때마다 다시 인쇄가 시작됩니다. 가능합니까? 어떻게 할 수 있습니까? 당신은 "표시"를 출력 여부를 원하는 경우

+0

하지만 먼저하는 것은 우리에게 보여줍니다. – fedorqui

+0

나는 그것의 행동을 바꿀 것입니다 방식에 문제가 직면하고있어! –

+0

코드를 보여주십시오. – grebneke

답변

3

아무리을합니다 (mark 라인이 인쇄되어서는 안),이 라인은 당신이 도움을 주어야한다 :

awk -v f=1 '/^mark$/{f*=-1;next}f>0' file 

시험 :

당신이 당신의 시도에 붙어있어 여기서 많은면에서
kent$ cat file 
1 
2 
mark 
3 
4 
5 
mark 
6 
7 
8 
mark 
9 
10 

kent$ awk -v f=1 '/^mark$/{f*=-1;next}f>0' file 
1 
2 
6 
7 
8 
+0

+1, 인내심은 +1입니다. :) – fedorqui

+0

주의하십시오. ! http://stackoverflow.com/questions/21335019/file-copy-script-linux (켄트 도움) – fedorqui

+1

@fedorqui 감사합니다. 내가 링크 된 페이지를 읽고 무슨 뜻인지 이해하지 못했던 질문 ... 나는 그 질문을 편집 할 것이다. – Kent

3
$ awk '/mark/{f=!f;next} !f' file 
aeht 
yeaja