次のファイルのリストがあります。
11F.fastq.gz
11R.fastq.gz
12F.fastq.gz
12R.fastq.gz
このファイル名を次のように変更したいと思います。
11_S11_L001_R1_001.fastq.gz
11_S11_L001_R2_001.fastq.gz
12_S12_L001_R1_001.fastq.gz
12_S12_L001_R2_001.fastq.gz
私はreanme
次のように試しました
rename 's/F.fastq/_S_L001_R1_001.fastq/' *.gz
rename 's/R.fastq/_S_L001_R2_001.fastq./' *.gz
しかし、「S」(この場合は11と12)の後にファイル番号を追加する方法がわかりません。どんなアドバイスも本当にありがとうございます。
ベストアンサー1
zsh
独自のバッチ名変更ツールが組み込まれており、zmv
自動読み込み機能として使用できます。
autoload -Uz zmv
typeset -A map=(F 1 R 2)
zmv -n '(<->)([FR])(.fastq.gz)' '${1}_S${1}_L001_R$map[$2]_001$3'
(-n
満足した場合は削除(模擬実行))。
または、スカラーを使用しmap=FR
てその文字列の文字インデックスで置き換えます。
map=FR
zmv -n "(<->)([$map])(.fastq.gz)" '${1}_S${1}_L001_R$map[(Ie)$2]_001$3'