2012-12-08 2 views
0

나는이 같은 쉼표로 구분 된 데이터 :하게 배열

WP, 2012120100, 30, 989, 50, 1050, 50, 50, 1007 
WP, 2012120106, 35, 987, 45, 1045, 50, 50, 1006 
WP, 2012120112, 40, 985, 
WP, 2012120118, 50, 980, 55, 1065, 65, 60, 1008 

내가 같은 배열로 각 열을 설정하려면 :

set -A col2 `awk -F, {print $2} myfile` 

-

0,123,516 : ->이 내가 할 그러나 경우

2012120100, 2012120106, 2012120112, 2012120118 

의 벌금 yeilding 배열 값을 작동

set -A col5 `awk -F, {print $5} myfile` 

배열 "col5"의 값은 50, 45, 55입니다. 배열 "col5"가 50, 45, 55가되도록 누락 된 열에 대해 공백 또는 null 값을 유지해야합니다. 배열이 더 이상 정렬되지 않습니다.

답변

2

awk를 사용하는 언어는 무엇입니까? UNIX의 bash는 다음과 같습니다.

$ col5="$(awk -F, '{print $5}' myfile)" 
$ echo "${col5[@]}" 
50 
45 

55 
+0

ksh를 사용하고있었습니다. 그 해결책은 여전히 ​​해결하려고하는 것과 같은 문제를 가지고 있습니다. 결과 배열을 50, 45,, 55가 아닌 50,45,55가되도록하고 싶습니다. 필자의 예에서 3 행과 같은 데이터의 일부 행에는 데이터가 누락되어 있습니다. 따라서 배열이 누락 된 인덱스에 대해 null 값이되어야합니다 (정확한 용어가되기를 바랍니다). – user1468548

+0

게시 한 출력을 다시 읽으십시오. 당신이 요청한대로 그것은 50, 45, 55입니다. 다른 것이 있으면 그게 뭔지 알려주세요. –