在solaris中递归搜索包含字符串的文件

时间:2015-01-01 07:28:12

标签: file search recursion solaris

寻找solaris命令获取包含搜索模式的所有文件的列表(递归)。我知道如何为linux做这个,但同样的命令在solaris中不起作用:

bash-3.2# uname -a
SunOS D1NCIC-CL01 5.10 Generic_148888-03 sun4u sparc SUNW,Sun-Fire-15000

bash-3.2# find . -type f -print0 | xargs -0 grep -l "contentInFile"
xargs: illegal option -- 0
xargs: Usage: xargs: [-t] [-p] [-e[eofstr]] [-E eofstr] [-I replstr] [-i[replstr]] [-L #] [-l[#]] [-n # [-x]] [-s size] [cmd [args ...]]
find: bad option -print0
find: [-H | -L] path-list predicate-list

2 个答案:

答案 0 :(得分:5)

find结合使用的情况经常如此,xargs在这里没用。您可以在Solaris和Linux上运行此可移植命令以获得所需内容:

find . -type f -exec grep -l "contentInFile" {} +

答案 1 :(得分:1)

如果您的文件名不包含任何空格,只需使用-print并省略-0中的xargs

如果有,请升级到Solaris 11,并使用/usr/gnu/bin/find/usr/gnu/bin/xargsGNU Tools out of the box in Solaris 11)。

或者,如果您仍然停留在Solaris 10上,请安装GNU查找实用程序(How do I grep recursively?),或How do I grep recursively?Ag中建议的其他搜索工具, ack)。