2016-09-06 2 views
0

저는 현재 지하철 정류장에서 다음 출발을 보여주는 스크립트를 만들고 있습니다.regexes를 사용하여 두 줄 사이의 줄을 제거합니다.

줄 번호와 방향을 캡처하는 패턴 (\b\d$|Westbound)이 있습니다. 그러나, 그 사이에 선을 제거하는 방법은 무엇입니까? 주변을 검색해 본 결과 아무런 결과도 얻지 못했습니다. 의 형식에서

5 
Ringen via Storo 
12 min 
Eastbound 

4 
Vestli via Storo 
16:10 
Westbound 

5 
Vestli via Majorstuen 
16:11 
Eastbound 

5 
Ringen via Majorstuen 
16:12 
Westbound 

:

출력 고려 질문은

Line 
Name of line 
Time 
Direction 

을, 나는 서쪽으로 그렇게 말하자면,가는 모든 행을 필터링 할 수 있다는 나오지 사용하는 방법이 인쇄 된 유일한 줄은 다음과 같습니다.

5 
Ringen via Storo 
12 min 
Eastbound 

5 
Vestli via Majorstuen 
16:11 
Eastbound 

이렇게하면 wi로 시작하는 모든 텍스트 세그먼트가 제거됩니다. th 으로 끝나며 서쪽으로 끝나는으로 끝납니다. regexes와 bash에 내장 된 도구로 가능합니까? 아니면이 문제에 대한 해결책을 찾는 것이 더 좋을까요?

미리 감사드립니다. 이 실행

+3

당신이 알 수 있도록 - 다음과 같은 출력을 생성합니다. StackOverflow는 사람들이 당신을 위해 프로그램을 구현하는 장소가 아니며, 프로그램을 구현하는 곳이며 특정 질문이있을 때 사람들이 당신을 도울 수 있습니다. – Tomalak

+0

위 출력은 _you_ 작성한 스크립트에 의해 생성됩니까? 그렇다면 스크립트를 수정하지 않으시겠습니까? – redneb

+0

Regex가 여기 솔루션의 _part_ 일지 모르지만 각 단락을 읽고 처리하는 데 추가 도구가 필요하다고 생각합니다. 어쩌면 sed가 이것을 할 수 있으며, Java와 C#은 확실히 할 수 있습니다. –

답변

0

-

echo '5 
Ringen via Storo 
12 min 
Eastbound 

4 
Vestli via Storo 
16:10 
Westbound 

5 
Vestli via Majorstuen 
16:11 
Eastbound 

5 
Ringen via Majorstuen 
16:12 
Westbound' | gawk 'BEGIN { 
    FS="\n" 
    RS="" 
} 
$4 != "Westbound" { 
    print 
}' 

는 - 꽤 잘, 나는 당신이 그것을 사실을하려고하는 것이 좋습니다 당신이 원하는 무엇을 좋아

5 
Ringen via Storo 
12 min 
Eastbound 
5 
Vestli via Majorstuen 
16:11 
Eastbound 
+0

이것은 정확히 내가 원하는 것입니다. 시간을 내 주셔서 감사합니다! –

관련 문제