주문의 모든 CSV를 하나의 CSV로 병합하는 방법

주문의 모든 CSV를 하나의 CSV로 병합하는 방법

폴더에 많은 CSV가 있습니다. 순서대로 결합하고 싶습니다.

내 CSV 파일은

state_1_result_6.csv,
state_1_result_8.csv,
state_1_result_10.csv,
state_1_result_12.csv.....

각 csv에는 헤더 없이 하나의 행이 있으므로 a의 내용은 state_i_result.csv다음과 같습니다.

1,2,3,69,19,1,2,6,10,12,30,28

첫 번째 행이 state_1_result_6.csv, 두 번째 행이 state_1_result_8.csv 등의 순서로 결합하고 싶습니다.

나는 전에 시도했다

cat state*.csv > final.csv

하지만 순서대로 병합되지는 않습니다.

답변1

이제 알았으니 색인 목록을 반복해 보세요.

for i in 6 8 10 12;
do
   cat state_1_result_${i}.csv >> final.csv
done

C 루프를 사용할 수도 있습니다.

for ((i=6; i<=12; i+=2))

답변2

파일 확장자 바로 앞에 인덱스가 있어서 보기 좋네요.

cat state*.csv > final.csv

ASCII 문자별로 정렬하는 것을 고려하세요. 즉, 정렬된 {6, 8, 10, 12}는 {10, 12, 6, 8}이 됩니다.

매뉴얼 페이지에서엘에스, 버전 번호별로 정렬하는 -v 옵션이 있습니다. 이것이 바로 필요한 것입니다. 그래서 당신은 사용할 수 있습니다

cat `ls -v | grep .csv` > final.csv

이것이 디렉토리에 있는 유일한 csv 파일인 경우.

답변3

아니면 더 간단하게

ls -v *.csv | xargs cat >> final.csv

-v 버전 번호별로 정렬

관련 정보