2016-08-17 6 views
0

후 2 선 나는 내가 뭘 원하는 인쇄이AWK - 패턴 사이에 인쇄 - 첫번째

y 
z 
pattern1 
line 
1 
1 
1 
patern2 
x 
k 

처럼 보이는 파일에는 다음과 같은 제한 두 패턴 사이의 내용

    패턴을 인쇄
  1. 첫 번째 패턴 후 다음 줄을 건너

이 내 출력 파일이

awk '/pattern1/{flag=1;next}/pattern2/{flag=0}flag' file 

을 수행하는 방법에 대한 아이디어를 사용하여 그들을 무시하고, 지금까지 내가 패턴 사이에 인쇄 할 수 있어요이

1 
1 
1 

같이해야한다는 것을 의미?

+1

여기를 참조하십시오. (인쇄 상태) : http://stackoverflow.com/questions/38972736/how-to-select-lines-between-two-patterns/ –

+0

@JamesBrown : 사실 저도 거기에서 가져 왔지만 내 필요에 따라 수정할 수없는 것 같습니다 ... – Thanos

+0

출력을 파이프해도 괜찮 으면 'awk'NR> 1 ','sed'1d '','tail -n + 2' 등 – Sundeep

답변

1

이 시도 :

awk '/pattern1/{i=1;next}/patern2/{i=0}{if(i==1){i++;next}}i' File 
0

당신이 patter1을 일치 시작 줄 번호를 기록 할 수 있습니다 다음 next이 저장 될 수

awk '/pattern1/{s=NR+1;p=1;next}/pattern2/{p=0}p&&NR>s' file 

을 더 라인이 모두 pattern1 and pattern2

1
$ awk '/pattern1/,/patern2/{i++} /patern2/{i=0} i>2' file 
1 
1 
1 
일치하지가있는 경우

사이 patterns 증분 i, 2 레코드 시작 인쇄 (i>2) 및 끝 마커에서 i 재설정.