我正在尝试使用“查找”命令来选择没有奇怪字符的文件名(如 CR、LN、DEL、...)。
以下命令行在RHEL 5中运行良好:
find /dir -type f -regextype egrep -regex '^[[:print:]]+$'
find /dir -type f -regextype egrep -regex '^[^[:cntrl:]]+$'
但它不在RHEL 4中,因为 regextype 选项在 find 命令的 4.1.20 版本中不可用。
根据findutils 包中的文档( /usr/share/info/find.info.gz ):
*Note Syntax of Regular Expressions: (emacs)Regexps, for a
*description of the syntax of regular expressions.
我很困惑试图理解 Emacs 正则表达式,因为在唯一文件所在的子目录中
aaaa
以下命令行确实有效:
find . -type f -regex '\./[:alnum:]+'
find . -type f -regex '\./[:alpha:]+'
但其他这些没有:
find . -type f -regex '\./[:print:]+'
find . -type f -regex '\./[^[:cntrl:]]+'
为什么接受某些字符类而不接受其他字符类?你知道在 RHEL 4 中获得它的其他方法吗?
提前感谢