gpt4 book ai didi

bash - 在循环中重命名匹配模式的文件 - Bash

转载 作者:行者123 更新时间:2023-12-05 02:40:59 29 4
gpt4 key购买 nike

我一直在尝试根据表格重命名一些特定文件,但没有成功。它要么重命名所有文件,要么给出错误。

该目录包含数百个以长条形码命名的文件,我只想重命名包含模式 _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

我的表格.txt

<表类="s-表"><头>旧名新名字<正文>barcode_1_barcode_SL484171描述1barcode_2_barcode_SL484171描述1barcode_1_barcode_SL484370描述2barcode_2_barcode_SL484370描述2

期望输出:

描述1.R1.fastq.gz 描述2.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

最佳答案

while read -r oldname newname
do
if [[ $oldname =~ "_1_" ]]
then
mv $oldname $newname
fi
done < mytable.txt

关于bash - 在循环中重命名匹配模式的文件 - Bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68323157/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com