폴더에 많은 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 버전 번호별로 정렬