regex - 在 bash 中使用正则表达式列出文件 | 忽略具有某些字符的文件
问题描述
我是正则表达式的新手,我想列出与给定正则表达式匹配的文件。我有一些示例文件,如下图所示
我想要正则表达式,它应该返回下面提到的文件:
test1.csv test2.csv test3.csv test9.csv.tt
我想为此使用 find 命令,我也尝试使用下面提到的 find 命令,但无法达到我的预期结果
find . -maxdepth 1 -type f -name "**test[0-9]*[^-a-zA-Z_]***.csv*" -exec ls -l {} +
我想使用相同的命令来实现我的预期输出,只有我想要正确的正则表达式。
任何人有任何想法请帮忙!
解决方案
使用find
,您可以尝试:
find . -type f -regex ./test[0-9]\*.csv.\* -exec ls -l {} +
或者,使用sed
,您可以尝试
$ ls -l | sed '/^d/d;/ test[0-9]*\.csv.*/!d'
(不确定数字是否是强制性的——如果是,则替换*
为+
)
这里面有 2 个命令sed
。
/^d/d
删除以 a 开头的任何行d
(排除目录)/ test[0-9]*\.csv.*/!d
删除任何与您要过滤的正则表达式不匹配的行。
推荐阅读
- python - 问:无法在 anaconda 上安装“mediapipe”库
- android - 从 Dagger2 迁移到 Hilt
- mysql - 如何使用sql中的时间戳列从表中获取过去30天的记录
- javascript - 通知正文未显示 JavaScript
- qt - 删除 QML ListView 中的间距
- python - Flask + gevent.pywsgi.WSGIServer + SSLError + namecheap 失败
- ubuntu - 重启时出现 Syslog-ng 服务错误 - syslog 转发到 Qradar
- powershell - 将 PSCustomObjects 拆分为字符串/数组
- html - Bootstrap 5 - 在保持行的同时具有自动宽度的列
- asp.net - 如何在 ASP.NET 中构建 JavaScript uglify 文件并将其打包到 Docker 映像中