我有80雙以下類型的文件的組合擴展在擊循環腳本的索引:在具有通配符和一個下劃線
170309-N701-S517_S1_L001_R1_001.fastq.gz
170309-N701-S517_S1_L001_R2_001.fastq.gz
170309-N701-S502_S2_L001_R1_001.fastq.gz
170309-N701-S502_S2_L001_R2_001.fastq.gz
170309-N701-S503_S3_L001_R1_001.fastq.gz
170309-N701-S503_S3_L001_R2_001.fastq.gz
..
170309-N710-S507_S79_L001_R1_001.fastq.gz
170309-N710-S507_S79_L001_R2_001.fastq.gz
170309-N710-S508_S80_L001_R1_001.fastq.gz
170309-N710-S508_S80_L001_R2_001.fastq.gz
本質上,一對包括以下文件:
170309-N701-S517_S<ID>_L001_R1_001.fastq.gz
170309-N701-S517_S<ID>_L001_R2_001.fastq.gz
其中ID從1變化到80。
我想創建80子文件夾名爲S1..S80並把每對在相應的文件夾中,例如
170309-N701-S517_S1_L001_R1_001.fastq.gz
170309-N701-S517_S1_L001_R2_001.fastq.gz
去到子文件夾S1
170309-N701-S502_S2_L001_R1_001.fastq.gz
170309-N701-S502_S2_L001_R2_001.fastq.gz
去到子文件夾S2
等。
我寫了下面的腳本:
#!/bin/bash
for i in {1..80}
do
mkdir S$i
mv "*_S"$i"_*" S$i
done
但預計它沒有工作。它創建了子文件夾S1..S80。但是,它沒有移動任何文件。它生產而不是
mv: cannot stat `*_S1_*': No such file or directory
mv: cannot stat `*_S2_*': No such file or directory
等等。
我在做什麼錯?你能糾正劇本嗎?
Globes不會在引號中展開,請將引號刪除。 – 123
@ 123刪除引號也無法按預期工作。它移動第一個文件夾S1中的所有文件。所有剩餘的文件夾都是空的。 – Nick
你的下劃線導致搜索問題,因爲它們不會被引用並且需要被轉義。該行應該是'mv * \ _ $ i \ _ *' – JNevill