bash 터미널 스크립트를 사용하여 숫자 키워드가 있는 파일을 해당 폴더로 이동하는 방법

bash 터미널 스크립트를 사용하여 숫자 키워드가 있는 파일을 해당 폴더로 이동하는 방법

키워드를 기준으로 특정 폴더로 파일을 이동하는 방법에 대해 질문이 있습니다. 예를 들어 다음과 같은 파일이 많이 있습니다: R01.fastq.gz R02.fastq.gz R03.fastq.gz R04.fastq.gz...다음과 같은 폴더가 있습니다: data01 data02 data03 data04...원하는 작업 R01.fastq.gz를 data01로, R02.fastq.gz를 data02로, R03.fastq.gz를 data03으로, R04.fastq.gz를 data04로 변환... 그렇다면 루프 스크립트를 사용하여 이 작업을 어떻게 수행합니까? 감사합니다!

답변1

# use brace expansion to create a list 00,01,02,[...] 98,99
for i in {0..9}{0..9} ; do
  # defining file and directory as vars as we will use them a couple of times each
  F=R$i.fastq.gz
  D=data$i/
  # if F does not exist, or is not a file, do nothing
  [ -f $F ] || continue
  # create any needed directories and move files if created OK (mkdir
  # will fail if D exists but is not a directory)
  mkdir -p $D && mv $F $D
done

관련 정보