고유한 열 값을 기준으로 CSV 파일을 여러 번 분할하는 방법은 무엇입니까?

고유한 열 값을 기준으로 CSV 파일을 여러 번 분할하는 방법은 무엇입니까?

여러 열이 포함된 CSV 파일이 있습니다. 이것이 제가 옹호하는 바의 예입니다. 샘플 입력 데이터는 다음과 같습니다.

9,-54,18205,28,0,1517400128,2353,0,0,0,0,551
9,-54,18207,28,0,1517400128,2354,0,0,0,0,551
10,-48,18216,28,0,1517400128,2353,0,0,0,0,551
9,-54,18217,28,0,1517400128,2356,0,0,0,0,551
13,-54,18223,28,0,1517400128,2353,0,0,0,0,551

1열의 고유 값을 기준으로 데이터를 분할한 다음 7열의 고유 값을 기준으로 결과를 추가로 분할하고 싶습니다. 현재 저는 먼저 열 1을 기준으로 워크시트를 분할한 다음 디렉터리에서 결과 csv 파일을 읽고 이를 출력 txt 파일에 저장한 다음 출력 txt 파일에서 다음과 같이 값을 가져옵니다. 변수를 지정하고 awk 스크립트를 실행하여 파일을 추가로 분할합니다. 하지만 어쩐지 2차 분열은 예상대로 이뤄지지 않았다. 지금까지 내가 한 일은 다음과 같습니다.

awk -F\, '{print > $7".csv"}' $dir/../testfile.csv

ls -R | grep "\.csv$" > testfile.txt

while IFS= read -r a \n b \n c; do
    awk -F\, '{print > $1".csv"}' $dir/$a
    awk -F\, '{print > $1".csv"}' $dir/$b
    awk -F\, '{print > $1".csv"}' $dir/$c
done < testfile.txt

여기서 문제를 파악하도록 도와주세요. 이는 쉘에 있어야 합니다.

답변1

나는 그것에 대해 생각했고 궁극적으로 다음 출력을 수행하려면 명령이 필요합니다.

awk -F, '{print >$1"_"$7".csv"}' infile

관련 정보