구조를 생성하고 파일을 디렉터리로 이동하여 정렬하는 스크립트를 어떻게 만들 수 있습니까?

구조를 생성하고 파일을 디렉터리로 이동하여 정렬하는 스크립트를 어떻게 만들 수 있습니까?

첫 번째 줄이 모든 날짜인 파일이 많이 있습니다. 모두 같은 처음 두 글자 "ff"로 시작합니다. 모든 파일의 첫 번째 줄을 가져와 파일이 생성된 디렉터리에서 정렬하는 스크립트를 만들어야 합니다.

예를 들어, 1개의 파일에는 다음이 포함됩니다.

고양이 파일

전체 날짜를 추출하고 모든 파일을 연도 디렉터리로 이동한 다음 월별 하위 디렉터리와 날짜별 하위 디렉터리로 이동해야 합니다. 지금까지 연도별로만 파일을 이동하는 스크립트가 있습니다. -p 기능을 사용할 수 있다고 하였는데, 사실 유닉스를 3일째 사용하고 있어서 지금은 헷갈립니다.

스크립트

답변1

맨 페이지를 읽어야 합니다:

  • 남자 1 모든 것
  • 사람 1 mkdir

힌트:

  • cut -f1,2,3여러 필드를 출력할 수 있습니다.
  • cut --output-delimiter=CHAR기본적으로 입력 구분 기호로 사용되는 출력 구분 기호를 재정의할 수 있습니다.
  • mkdir -p a/b/c디렉터리 계층 생성//, 즉.하위 디렉토리입니다그리고하위 디렉토리입니다.

답변2

해결책은 다음과 같습니다.

outputPath='/path/to/output/'
for file in $(find ~/filesToSort/ -type f -name "ff*")
do
    firstLine=$(head -n 1 $file)
    datePath="${firstLine//-//}"
    mkdir -p $outputPath$datePath
    mv $file $outputPath$datePath
done

기본적으로 이 스크립트의 기능은 다음과 같습니다.

  1. 모든 파일 나열
  2. 파일의 첫 번째 줄을 문자열로 가져옵니다.
  3. 경로를 생성하려면 문자열의 "-"를 "/"로 바꾸세요.
  4. 경로 생성
  5. 새로 생성된 경로로 파일을 이동하세요.

첫 번째 줄이 필수 템플릿과 일치하는지 확인하기 위해 테스트를 추가할 수 있습니다.

관련 정보