2012-08-08 6 views
0

이제 파일 목록을 두 개의 개별 배열에 저장하는 스크립트가 있습니다.sort -k가 항상 작동하지 않는 이유는 무엇입니까?

먼저 ZIP 파일에서 파일 목록을 가져 와서 FIRST_Array()으로 채 웁니다. 내가 Diff이 때문에 실패 말할 수

diff -q <(printf "%s\n" "${FIRST_Array[@]}") <(printf "%s\n" "${SECOND_Array[@]}") |wc -l 

: 둘째, 나는 ZIP 파일 내에서 제어 파일에서 파일 목록을 얻을

while read length date time filename 
do 
    FIRST_Array+=("$filename") 
    echo "$filename" >> FIRST.report.out 
done < <(/usr/bin/unzip -qql AAA.ZIP |sort -g -k12 -t~) 

셋째 그것으로 SECOND_Array()를 작성 나는 두 배열과 같이 비교 각 배열을 파일로 출력합니다 : FIRST.report.outSECOND.report.out은 단순히 올바르게 정렬되지 않습니다. ZIP 파일 안에 무엇이

1) FIRST.report.out()

JGS-Memphis~AT1~Pre-Test~X-BanhT~JGMDTV387~6~P~1100~HR24-500~033072053326~20120808~240914.XML JGS-Memphis~PRE~DTV_PREP~X-GuinE~JGMDTV069~6~P~1100~H24-700~033081107519~20120808~240914.XML JGS-Memphis~PRE~DTV_PREP~X-MooreBe~JGM98745~40~P~1100~H21-200~029264526103~20120808~240914.XML JGS-Memphis~FUN~Pre-Test~X-RossA~jgmdtv168~2~P~1100~H21-200~029415655926~20120808~240914.XML

2) SECOND.report.out (

JGS-Memphis~AT1~Pre-Test~X-BanhT~JGMDTV387~6~P~1100~HR24-500~033072053326~20120808~240914.XML JGS-Memphis~FUN~Pre-Test~X-RossA~jgmdtv168~2~P~1100~H21-200~029415655926~20120808~240914.XML JGS-Memphis~PRE~DTV_PREP~X-GuinE~JGMDTV069~6~P~1100~H24-700~033081107519~20120808~240914.XML JGS-Memphis~PRE~DTV_PREP~X-MooreBe~JGM98745~40~P~1100~H21-200~029264526103~20120808~240914.XML

) 우편의 제어 파일 안에 무엇이

sort -k12 -t~을 사용하면 ~이 파일의 날짜 필드 (12 위)의 구분 기호이므로 의미가 있습니다. 그러나 일관되게 작동하지 않습니다. 추가 된 -g은 아무런 차이가 없습니다.

내 스크립트가 더 큰 ZIP 파일을 처리 할 때 정렬이 악화됩니다. sort -k가 항상 작동하지 않는 이유는 무엇입니까? 어떻게 두 배열을 정렬 할 수 있습니까?

답변

0

데이터에 k12가 실제로 없으므로 분리 기호가 스펙에 '~'이지만 데이터에 ~가있는 경우가 있습니다.

당신이

head -n 1 your.data.file | sed -e "s/~/\n/g" 
+0

그러면 정렬 기준에 대해 무엇을 제안 하시겠습니까? 내 정렬에 하나 이상의 구분 기호를 사용할 수 있습니까? – Chris

+0

"033072053326"이 (가) 포함 된 입력란을 정렬하고 있습니까? 해당 필드는 실제로 k10입니다. – pizza

+0

"20120808"이 포함 된 필드는 내가 정렬하는 것입니다. 왼쪽에서 12 번째 위치로, "~"을 구분 기호로 사용한다고 가정합니다. – Chris

0

비즈니스 요구 사항에 의해 확인할 수는 변경 될 것입니다. 이 경우 더 이상 정렬 할 필요가 없습니다. 스레드를 닫을 수 있습니다. 고맙습니다.

관련 문제