Linux
連接子目錄下的多個文件
我的目錄結構如下
x:\Project_2012-158A\Sample_4041
SampleSheet.csv 4041_CGTACG_L002_R1_001.fastq 4041_CGTACG_L002_R2_001.fastq 4041_CGTACG_L006_R2_001.fastq 4041_CGTACG_L006_R1_001.fastq
x:\Project_2012-158A\Sample_4027
SampleSheet.csv 4027_TAGCTT_L002_R2_001.fastq 4027_TAGCTT_L006_R1_001.fastq 4027_TAGCTT_L002_R1_001.fastq 4027_TAGCTT_L006_R2_001.fastq
x:\Project_2012-158A\Sample_D425
SampleSheet.csv D425_ACTGAT_L008_R2_001.fastq D425_ACTGAT_L008_R1_001.fastq D425_ACTGAT_L004_R2_001.fastq D425_ACTGAT_L004_R1_001.fastq
我想為每個樣本分別連接帶有“R1”和“R2”的文件。我知道
cat file1.fastq file2.fastq > concatenation.fastq
將給予連接,但我如何使用單個腳本對所有子目錄執行此操作?
cd /path/to/Project_2012-158A && for dir in Sample*/; do for r in R1 R2; do outfile=${dir%/}_${r}.fastq glob=*_${r}_*.fastq cat "$dir"/$glob > "$dir/$outfile" && rm -f "$dir"/$glob done done
像這樣:
cat ./*/*R2* > result
*
- 匹配一切請注意,這將獲得
R2
文件名中的每一次出現。