수정된 날짜를 기준으로 여러 파일을 병합하고 모든 파일의 첫 번째 줄을 무시하는 방법

수정된 날짜를 기준으로 여러 파일을 병합하고 모든 파일의 첫 번째 줄을 무시하는 방법

다음 파일이 있습니다.

-rw-r--r--  1 xyz xyz    122 May 01 01:00  Test1
-rw-r--r--  1 xyz xyz    122 May 01 01:00  Test2
-rw-r--r--  1 xyz xyz    122 May 05 05:00  Test3
-rw-r--r--  1 xyz xyz    122 May 05 05:00  Test4

파일 내용에는 설명 행과 그 뒤에 쉼표로 구분된 데이터가 포함됩니다. 예:

테스트1:

ID, Name, Job, Address
1111, John, Janitor, 1234 Corson Ave

테스트2:

ID, Name, Job, Address
2222, Tim, Cashier, 3245 Elliot St

파일의 첫 번째 줄인 설명(ID, 이름, 직업, 주소)을 무시하고 수정된 날짜를 기준으로 위의 파일을 연결하는 명령을 제안해 주실 수 있는 분 계시나요?

예: 스크립트 이후에 내가 원하는 것은 다음과 같습니다.

May_1_file_after_concatenate:

1111, John, Janitor, 1234 Corson Ave
2222, Tim, Cashier, 3245 Elliot St

에 대해서도 마찬가지입니다 May5_file_after_concatenate. 내가 가지고 있는 디렉토리에는 수백만 개의 파일이 포함될 것입니다. 수정된 날짜를 기준으로 자동으로 정렬하고 그에 따라 연결해야 합니다.

저는 Centos 7을 사용하고 있습니다.

답변1

에서는 bash다음 스크립트를 사용할 수 있습니다.

#! /bin/bash
for file in "$@" ; do
    date=$(stat -c%y "$file" | cut -f1 -d' ')
    tail -n+2 "$file" >> "$date"
done

주어진 파일을 반복하여 마지막 수정 날짜를 검색한 다음 라인 2부터 시작하는 모든 것을 날짜로 명명된 파일에 추가합니다.

명령줄이나 매개변수에 맞춰야 할 파일이 두 개라면, 더 작은 파일 그룹에 대해 순차적으로(사용하거나 xargs수동으로) 스크립트를 호출하세요.

날짜 형식을 변환하는 것은 쉽습니다 :-)

관련 정보