我目前正在尝试制作一个脚本,该脚本将 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/