【发布时间】:2016-09-03 21:42:38
【问题描述】:
如何使用find 或任何其他命令在 Solaris 上使用正则表达式查找文件。
我已经设法在 Mac OSX 和 Ubuntu 中做到了,但似乎 Solaris 不支持 -regex 标志。
Mac OSX 中的示例:
find / -type f \( -perm +111 -regex ".*[0-9]$" -o -regex ".*[mh]$" \) -exec ls -lT {} \;
Ubuntu 中的示例:
sudo find / -type f \( -executable -regex ".*[0-9]$" -o -regex ".*[mh]$" \) -print0 -exec ls -l --time-style=long-iso {} \;
我需要在 Solaris 中同时查找与一个或多个正则表达式匹配的所有文件。
更具体地说,有两个文件被复制到 Solaris 机器上: 1.脚本.sh 2. 模式
脚本逐行读取模式文件,并从模式文件中的所有正则表达式模式中创建一个单行查找命令,并立即执行以列出与正则表达式模式匹配的所有文件。
模式文件示例:
\/usr[a-zA-Z0-9_.\/]+msg_\d+.txt
\/home[\S]+\.txt
.*[0-9]
用于上述示例的脚本:
find / -type f \( -perm +111 -regex "\/usr[a-zA-Z0-9_.\/]+msg_\d+.txt" -o -regex "\/home[\S]+\.txt" -o -regex ".*[0-9]" \) -exec ls -lT {} \;
提前致谢:)
【问题讨论】: