我有一些具有以下名称的文件:
A-C-F3_accepted_hits.bam
A-VR-M6R_accepted_hits.bam
文件存储在 Linux 服务器上。我想从所有带有 A-C-F3
的文件中提取下划线前的字符串(即 A-VR-M6R
、 .bam
等)扩大。
随后,我想将这些字符串用作另一个程序生成的输出文件的前缀,该程序将使用 *_accepted_hits.bam
输入文件。
更具体地说,我的输入如下:
samtools sort -n A-C-F3_accepted_hits.bam A-C-F3_sorted
samtools sort -n A-VR-M6R_accepted_hits.bam A-VR-M6R_sorted
此处 samtools 将对 A-C-F3_accepted_hits.bam 的内容进行排序。我想要前缀为 A-C-F3_sorted 的输出文件,后跟默认扩展名。同样,我有 17 个文件要执行此任务。希望这能让事情变得清楚。 谢谢。
最佳答案
您可以使用awk
提取文件名的前缀并将其附加到文件名的公共(public)部分。
OCOMM=_accepted_hits.bam
for i in `ls *.bam`;
do
OFILE=`echo $i | awk -F_ '{print $1}'`;
FILENAME=$OFILE$OCOMM;
echo $FILENAME;
done
关于linux - 将文件名前缀作为输入传递给程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39997986/