2013-06-10 2 views
-1

파일의 각 줄을 살펴보고 정규식을 사용하여 각 줄의 몇 가지 특정 항목을 찾고 출력용 .csv 파일의 각 행에 그 내용 (thing1|thing2|thing3|thing4|)이 포함되도록 인쇄하려고합니다. 내가perl에서 파이프로 구분 된 출력물의 빈 필드를 삭제 하시겠습니까?

|||| 
다음

|||thing4| 

다음

|thing1||thing3|| 

과 같은 일을 얻을 라인으로 라인을 통해거야 나는 모든 것을 함께 밀기 위해 빈 파이프로 구분 된 영역을 삭제하는 방법을 모른다. 도움? thing2 | | thing3 |

+0

과 이후를 필터링 할 수있는 행 하나에 thing4, thing1.1 | thing2.1 | thing3.1 | 행이에 thing4.1 , 등등. 나는 2 주 동안 만 프로그래밍을 해왔다. – user2471806

+0

@ user2471806 여기에 귀하의 질문이 있습니다 : "나는 1,2,3,4를 원하지만 무엇 때문에 다른 것이됩니다. 어떻게 수정해야합니까?" 누군가가 당신의 질문에 어떻게 대답 할 수있을 것이라고 기대합니까? 입력 내용과 코드를 표시하십시오. – TLP

답변

0

당신은 정규식 thing1 같은

$out =~ s/\|{2}/|/sg;

+0

프로그램은 지금까지는 많은 정규 표현식을 가지고 있으며, 명령어를 가지고있다. (약간 구두로) print "$ thing1 | $ thing2 | $ thing3 | $ thing4 | \ n"; – user2471806

+0

그래서 정확히 $ 물건을 걸러 낼 수 있을까요? – user2471806

+0

대신 print out ... do $ out = .... then filter, 출력 OUT $ out –

관련 문제