linux - 将文件名前缀作为输入传递给程序

标签 linux shell

我有一些具有以下名称的文件:

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/

相关文章:

linux - 从多个 shell 命令的输出创建一行

linux - Bash 列相关平均值

java - Android Studio 中的最大堆大小无效错误

c - 从 ELF 二进制文件中仅提取我的函数名称

linux - 如何在 bash 中插入引号而不在其文字文本中进行变量扩展?

unix - 可以在 If 语句中使用 tar -xvf 返回 true 或 false

linux - 我如何让 python3 在文本文件中搜索特定的字符串

linux - 通过 Bash 登录站点 (Stack Overflow)

perl - 如何将 shell 脚本转换为 Perl 脚本?

linux - Realtek 8811CU 安装脚本问题