【发布时间】:2021-02-18 04:43:18
【问题描述】:
我的程序必须使用 find、grep 和 rsync 命令。一般来说,我很少在一个脚本中使用所有这些,所以之前没有注意到。是否有适合这些命令的 regular-expression 类别,例如:
find command: follows regex type1
grep command: follows regex type2
rsync command: follows regex type3
例如,要查找通向我的程序日志文件的所有路径,我们可以这样做:
find -type f -name "foo.log*"
这里,在上面的命令中,star 不像是一个正确的正则表达式,就像在正则表达式中一样,star 对应于零/一个/多个实例在这种情况下是 character('g') 的前一个表达式?因此,如果它实际上遵循正则表达式,它可以匹配如下文件名:
foo.lo
foo.log
foo.logg
foo.loggg
and so on...
类似于 find 命令,rsync 在为其源和目标路径指定表达式时表现。另一方面,我注意到 grep 命令确实遵循正则表达式。
所以,总共:
- 所有这些命令都遵循不同的正则表达式吗?
- 或者其中一些遵循正则表达式,而另一些则没有,如果没有,那么它们遵循什么模式?基本上,我正在寻找所有这些工具模式的概括?
我是 Linux 工具的新手。请指导!
【问题讨论】:
-
GNU find(参见:
find -regextype help)、GNU grep(取决于使用的选项:正则表达式、扩展正则表达式、Perl 兼容的正则表达式,参见:man grep)和 rsync(glob)跨度>
标签: regex grep find glob rsync