regex - 如何 grep 查找文件扩展名

标签 regex bash grep

我目前正在尝试制作一个脚本,该脚本将 grep 输入以查看某些文件是否属于某种文件类型(例如 zip),尽管文件类型之前的文本可以是任何内容,例如

something.zip
this.zip
that.zip

都属于该类别。我正在尝试使用通配符对这些进行 grep,到目前为止我已经尝试过了

grep ".*.zip"

但每当我这样做时,它会发现 .zip 文件很好,但如果 .zip 之后有其他字符,它仍会显示输出,所以实例 .zippppppp.zipdsjdskjc 仍会被 grep 拾取。话虽如此,我应该怎么做才能防止 grep 显示在 .zip 之后有额外字符的匹配项?

最佳答案

使用 $ 测试行尾并用反斜杠转义第二个 .,这样它只匹配句点而不匹配任何字符。

grep ".*\.zip$"

但是,如果您想列出当前目录或 find 中的所有 .zip 文件,ls *.zip 是一种更自然的方法。 - 为从(包括) 当前目录开始的子目录中的所有.zip 文件命名为“*.zip”

关于regex - 如何 grep 查找文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13335837/

相关文章:

sql - 在 SAS Proc SQL 语句中使用 Perl 正则表达式

php - 用于验证以 +254 开头的电话号码的正则表达式

Linux,将输出写入文件,包括命令

bash - 何时使用 set -e

linux - 将 grep 结果打印到文件和终端

linux - 搜索文本

grep - 如何使用grep查找n个字符长的字词?

java - 在java中使用正则表达式围绕空格/标点符号分割字符串时出现问题

python - 从Python中的文本中提取多个日期

string - 如何在单引号字符串中使用变量?