2016-11-23 11 views
-2

ディレクトリに複数のfastq.gzファイルがあります。私は各ファイル名の一部を削除したいと思います。ここにファイル名がありますLinuxの複数のファイル名の一部を削除します

RES-1448-001_S289_L001_R1_001.fastq.gz 
RES-1448-001_S289_L001_R2_001.fastq.gz 
RES-1448-012_S300_L001_R1_001.fastq.gz 
RES-1448-012_S300_L001_R2_001.fastq.gz 

L001の後にSと3桁を削除したいと思います。

for file in *.fastq.gz; do 
    start=${file%%_*} ## Gets only the portion before first `_` 
    end=${file#*_*_*_*} ## Gets the portion after 3 `_`s from start 
    echo mv -- "$file" "${start}_${end}" 
done 

これは単なるechomvコマンドが実行されますが、満足している場合削除:私は

RES-1448-001_R1_001.fastq.gz 
RES-1448-001_R2_001.fastq.gz 
RES-1448-012_R1_001.fastq.gz 
RES-1448-012_R2_001.fastq.gz 

bashパラメータ展開してあなたの助け

+1

$ {thefilename:1:13} $ {thefilename:24:15}あなたのファイル名フォーマットの正確なタイプである場合を示しています。 –

答えて

0

いただき、誠にありがとうござい削除した後にこれを期待しますecho実際にはmv - 対処:

+0

ありがとうございます。 – Bala

+0

最初の部分を選択する方法3 ' - ' – Bala

+0

@Balaこれを新しい質問としてお聞かせください。 – heemayl

-1

perl -ape 's{_S\d\d\d_L001}{}' 
関連する問題