bashターミナルスクリプトを使用して数値キーワードを含むファイルをそのフォルダに移動する方法

bashターミナルスクリプトを使用して数値キーワードを含むファイルをそのフォルダに移動する方法

キーワードに基づいて特定のフォルダにファイルを移動する方法について質問があります。たとえば、次のようなファイルがたくさんあります。R01.fastq.gz R02.fastq.gz R03.fastq.gz R04.fastq.gz... 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

おすすめ記事