2013-05-22 11 views
0

SQR을 사용하여 여러 행의 데이터가있는 쉼표로 구분 된 .csv 파일을 만들었습니다. 각 행에는 네 가지 데이터 세트가 있습니다. 하나의 세트는 화폐 가치입니다. Linux 스크립트를 사용하여 각 행의 금전적 가치를 .csv 파일에서 빼내고 모든 행의 금전적 가치 데이터에 대해 총 금전적 가치를 얻으려고합니다. 내 문제는 각 화폐 가치의 시작 시점은 화폐 금액보다 먼저 작성된 정보에 따라 다릅니다. 또한 각 통화 금액의 종료 지점도 다릅니다. 나는 이것에 접근하는 방법을 확신하지 못한다. 나는 각 행의 화폐 가치를 끌어 내고 다음 행과 함께 추가하는 코드를 작성하는 데 도움이 필요하다. 다음은 .csv 파일의 모양을 보여주는 샘플입니다. 첫 번째 열은 비즈니스 단위이고 두 번째 열은 프로젝트 ID이며 세 번째 열은 화폐 값이며 네 번째 열은 프로젝트 승인자의 이름입니다. 도와 주실 수 있습니까?어떻게 서로 다른 시작 지점에서 csv 파일의 여러 행에 특정 값을 추가합니까?

EDJ,50007556,587850,"Project Approver" 
EDJ,50007557,348462.25,"Project Approver" 
CAN,50002657,8245.75,"Project Approver" 
EJTC,00000010,198746.30,"Project Approver" 

답변

0

당신은 구분 된 파일의 열을 선택 cut를 사용할 수 있습니다

cut -f3 -d, FILE # comma as the delimiter, third column 

이 값을 요약하면, 나는 펄을 사용합니다 : 펄이 처리 할 수있는,

cut -f3 -d, FILE | perl -lne '$s += $_ }{ print $s' 

을하지만 열 자체이므로 cut은 필요하지 않습니다.

perl -F, -ane '$s += $F[2] }{ print $s' FILE 
+0

절단 작업을 수행하면 3 번째 열의 첫 번째 위치가 결정됩니까? 그렇다면 세 번째 열에 값을 저장하려면 네 번째 열을 잘라내서 두 위치 사이의 값을 가져와야합니까? MONEYSTART = $ (echo $ WHEREAMTIS | cut -d ","-f3) MONEYLENGTH = $ (echo $ WHEREAMTIS | cut -d ","-f4) WHEREAMTIS = $ (echo $ WHEREAMTIS | cut -d " , "-f2) 나는 완전히 개념을 파악하고 있다고 생각하지 않는다. 당신은 리눅스 배쉬만을 사용하여 설명 할 수 있습니까? –

+0

@DrewDrawsKelly :'cut'은 열의 값을 제공합니다. 위치는 포함되지 않습니다. – choroba