linux - 如何在 linux (bash) 中循环包含两个不同模式文件的列表?

标签 linux bash

<分区>

我得到一个包含与以下两种模式匹配的文件名的列表:

  • 一个像 XXX_01.fastq
  • 另一个是 XXX_01_001.fastq

我将编写一个 for 循环(在 bash 中)以遍历所有具有不同模式的文件名,我需要确定哪些文件名与上述模式匹配。有什么帮助吗?

最佳答案

list.txt 的内容:

$ cat list.txt
AAA_01.fastq
AA_01_001.fastq
BBB_01_002.fastq
BBB_02.fastq

使用 bash 模式匹配的示例:

for file in `cat list.txt`; do
  if [[ $file =~ [A-Z]{3}_[0-9]{2}\.fastq || $file =~ [A-Z]{3}_[0-9]{2}_[0-9]{3}\.fastq ]]; then
    echo "MATCH $file";
  fi;
done

输出:

MATCH: AAA_01.fastq
MATCH: BBB_01_002.fastq
MATCH: BBB_02.fastq

关于linux - 如何在 linux (bash) 中循环包含两个不同模式文件的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318856/

相关文章:

linux - crontab 不会执行脚本

c - GLUT 窗口重叠后不刷新

linux - 使用 AWK 根据列数过滤行

c++ - gcov 检测共享对象引用 __gcov_init 隐藏符号

代码漏洞

子进程写入文件

linux - 如何使用 Bash(sed 或任何其他)命令在第 EOF-n 行插入

linux - "Exec format error"运行由 g++ 创建的二进制文件

bash - 可以在 bash if 语句中使用调用 "test"的函数吗?

linux - 使用 SSH 时转义引号