bash - 使用 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
没有 ( lsst90
orlsst_mono
或lsst_mono90
.
我努力了:
ls a_lsst_*.txt # but it gives all files
所需输出:
a_lsst_z1.5_000.txt
a_lsst_z1.5_001.txt
如何仅获取lsst文件?
解决方案
也许只是匹配后面的第一个字符_
作为数字?
echo a_lsst_[0-9]*.txt
编辑后,您可以匹配该z1.5
部分:
echo a_lsst_z1.5_*.txt
推荐阅读
- c# - 缓存 JS CSS 和视图 Umbraco V7
- docker - 如何使用 Traefik 设置 Nginx
- ios - Combines Publisher.subscribe(_ subject) 有时会泄漏吗?
- python - 如何将 scipy curve_fit 与自定义目标函数一起使用?
- unit-testing - 如何使用 mockito 验证从未调用过任何参数的函数?
- php - 显示 XAMPP 404 错误的新 Laravel 路由
- django - django中的逗号分隔表单字段
- reactjs - 如何使用变量而不是“禁用”字禁用字段集
- sql - SQL Server 子句问题
- python - 带有格式化和 logrotate 的日志设置