2014-03-26 3 views
3

에 결과를 작성 :이 개 CSV 파일의 열을 비교하고 나는 다음과 같은 열이 개 CSV 파일이 세 번째

alternate.csv :

Q P-003430 NO HOUR PARKING 8AM-10PM EXCEPT SUNDAY 

csvtest.csv :

-73.90479333 40.70043234 5597032 P-003430 1010648.808 194477.1977 NO HOUR PARKING 8AM-10PM EXCEPT SUNDAY 

내가 사용했습니다

awk 'NR==FNR{a[$2];next}$4 in a{print $1}' alternate.csv csvtest.csv >result.csv 

열을 비교하고 내가 원하는 결과를 얻으려면 그러나 마지막 열 NO HOUR PARKING 8AM-10PM EXCEPT SUNDAY은 마지막 열에서 단지 NO으로 잘립니다. 그래서 마지막 열에 전체 문구 NO HOUR PARKING 8AM-10PM EXCEPT SUNDAY을 유지할 수있을 것이라고 변경할 수있는 방법이 있나요

-73.90479333 40.70043234 5597032 P-003430 1010648.808 194477.1977 NO 

: 예를 들어, result.csv를 들어

는 다음과 같이 나온다.

+0

죄송합니다. 편집했습니다. 문제는 마지막 열이 첫 번째 숫자/단어로 잘 리게된다는 것입니다. 예를 들어, 1 시간 주차가 1로 절단된다고 말할 수 있습니다. – masterqp

+2

@masterqp 귀하의 명령은 귀하가 보여준 결과를 산출해서는 안됩니다. '$ 1'을 출력하면'-73.90479333' 만 출력됩니다. 'print $ 0'을하면 전체 행을 얻어야합니다. 우리는 무엇을 놓치고 있습니까? –

+0

오 감사합니다. 왜 $ 1이 결과를 내는지 확신 할 수 없습니다. 당신은 그것이 첫 번째 칼럼 만 주어져야한다고 맞습니다. – masterqp

답변

3

가 실제로있는 파일 형식을 무엇으로 불확실성 어떤 영업 이익은 실제로 시도했다는 의견에서 인정, 표면 문제에 대한 명백한 수정은 다음과 같습니다

$ awk 'NR == FNR { a[$2]; next } $4 in a' alternate.csv csvtest.csv 
-73.90479333 40.70043234 5597032 P-003430 1010648.808 194477.1977 NO HOUR PARKING 8AM-10PM EXCEPT SUNDAY 

이 문제를 해결하지 않을 수 있습니다, 하지만 파일은 실제로 CSV 형식이 아니기 때문에 OP의 코드는 예제 출력을 생성하는 데 사용되는 코드가 아닙니다.

관련 문제