CSV에서 맨 위 행을 제거한 다음 병합

CSV에서 맨 위 행을 제거한 다음 병합

한 위치에 유사한 CSV 파일이 여러 개 있습니다. 이 파일들을 하나의 파일로 병합해야 합니다. 하지만 문제는 내 CSV 파일의 헤더 상단에 추가 행이 있다는 것입니다. 행을 삭제한 다음 csv를 병합하고 싶습니다.

상단에 추가 줄이 없으면 다음과 같은 작업을 수행할 수 있다는 것을 알고 있습니다.

cat *UNSTRUCTURED.csv > Merged_UNSTRUCTURED.csv

하지만 문제는 어떻게 상위 라인을 제거할 것인가이다. 또한 모든 파일 이름은 UNSTRUCTURED와 같은 패턴을 갖습니다.

여기에 이미지 설명을 입력하세요.

답변1

대신 다음 cat을 사용하세요.

awk 'FNR>2 || NR==2' ./*UNSTRUCTURED.csv > UNSTRUCTURED-Merged.csv

모든 파일의 처음 두 줄(추가 줄과 헤더 줄)을 건너뛰지만 첫 번째 파일의 두 번째 줄(헤더)은 유지합니다.

NR전체 입력의 레코드 수입니다(기록존재하다철사기본적으로) while은 FNR현재 파일의 레코드 번호입니다.

처음 2개 행 삭제모두파일(헤더 없는 출력 결과)을 사용하려면 간단히 awk 'FNR>2'또는 GNU sed: sed -s 1,2d또는 GNU tail또는 호환 가능(ast-open, FreeBSD 및 busybox 포함): 을 사용하세요 tail -qn+3.

관련 정보