簡體   English   中英

Linux Shell中文件的批量重命名

[英]Batch Renaming of Files in Linux Shell

我在遠程集群上通過 ssh 工作,需要根據方案重命名一些文件。 重命名應該像這樣工作:

M-19-3778_P1-DX5-K47-232-Elev_A1-A1_L001_R1_001.fastq.gz
M-19-3778-P1-DX5-K47-232-Elev-A1-A1L001_R1.R.fq.gz

M-19-3778_P1-DX5-K47-232-Elev_A1-A1_L001_R2_001.fastq.gz
M-19-3778-P1-DX5-K47-232-Elev-A1-A1L001_R1.F.fq.gz

M-19-3779_P1-F48-F37-86-Cont_A2-A2_L001_R1_001.fastq.gz進入
M-19-3779-P1-F48-F37-86-Cont-A2-A2L001_R2.R.fq.gz

M-19-3779_P1-F48-F37-86-Cont_A2-A2_L001_R2_001.fastq.gz進入
M-19-3779-P1-F48-F37-86-Cont-A2-A2L001_R2.F.fq.gz

...

M-19-3830_P1-DX5-D12-221-Elev_F9-F9_L001_R1_001.fastq.gz
M-19-3830-P1-DX5-D12-221-Elev-F9-F9L001_R53.R.fq.gz

M-19-3830_P1-DX5-D12-221-Elev_F9-F9_L001_R2_001.fastq.gz
M-19-3830-P1-DX5-D12-221-Elev-F9-F9L001_R53.F.fq.gz

迭代僅在名稱的開頭以 3778....

到目前為止,我已經嘗試使用grep / sed / cat的組合,但沒有成功。 而且我不知道如何處理名稱R1R2 ,...末尾的迭代,我的猜測是for循環和if -Statement 的組合,但我只是沒有讓它運行。

如果有任何幫助,我將不勝感激!

i=1
for name in *
do
    newName=${name%_L001_R1_001.fastq.gz}L001_R$i.R.fq.gz
    mv "$name" "$oldname"
    ((i++))
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM