首页 > 解决方案 > 使用 bash ls 命令仅列出基于中间部分的文件

问题描述

我是 bash 的菜鸟,并且对 bash 有一个非常基本的问题。我有如下文件:

a_lsst_z1.5_000.txt
a_lsst_z1.5_001.txt
a_lsst90_z1.5_001.txt
a_lsst_mono_z1.5_000.txt
a_lsst_mono_z1.5_001.txt
a_lsst_mono90_z1.5_000.txt
a_lsst_mono90_z1.5_001.txt
and so on

我只想列出lsst没有 ( lsst90orlsst_monolsst_mono90.

我努力了:

ls a_lsst_*.txt # but it gives all files

所需输出:

a_lsst_z1.5_000.txt
a_lsst_z1.5_001.txt

如何仅获取lsst文件?

标签: bashshellsh

解决方案


也许只是匹配后面的第一个字符_作为数字?

echo a_lsst_[0-9]*.txt

编辑后,您可以匹配该z1.5部分:

echo a_lsst_z1.5_*.txt

推荐阅读