【发布时间】:2021-09-20 04:35:09
【问题描述】:
我一直在尝试根据表格重命名某些特定文件,但没有成功。它要么重命名所有文件,要么给出错误。
该目录包含数百个以长条形码命名的文件,我只想重命名包含模式 _1_ 的文件。
例子
barcode_1_barcode_SL484171.fastq.gz barcode_2_barcode_SL484171.fastq.gz barcode_1_barcode_SL484370.fastq.gz barcode_2_barcode_SL484370.fastq.gz
mytable.txt
| oldname | newname |
|---|---|
| barcode_1_barcode_SL484171 | Description1 |
| barcode_2_barcode_SL484171 | Description1 |
| barcode_1_barcode_SL484370 | Description2 |
| barcode_2_barcode_SL484370 | Description2 |
期望输出:
Description1.R1.fastq.gz Description2.R1.fastq.gz
正如您在表格中看到的,每个描述有两个文件,但我只想重命名具有 _1_ 模式的文件。
我尝试过的代码:
for i in *_1_*.fastq.gz; do read oldname newname; mv "$oldname" "$newname".R1.fastq.gz; done < mytable.txt
for i in $(grep '_1_' mytable.txt); do read -r oldname newname; mv ${oldname} ${newname}.R1.fastq.gz; done < mytable.txt
for i in $(grep '_1_' mytable.txt); do oldname=$(cut -f1 $i);newname=$(cut -f2 $i); ln -s ${oldname} ${newname}.R1.fastq.gz; done
【问题讨论】: