我使用的是Solaris 10,并且有两个grep
版本,一个版本/usr/bin
和一个版本/usr/xpg4/bin
。我一直在寻找有关如何使用来搜索父目录的子文件夹内文件中文本的答案grep
。所有答案都在谈论-r
或-R
切换,我的版本无法使用grep
。
标准(POSIX)语法为:
find /path/to/parent -type f -exec grep 'XXX' /dev/null {} +
(/dev/null
以确保grep
始终打印文件名)。这将适用于包括Solaris在内的所有POSIX系统。唯一已知的90年代后不起作用的系统是旧的(现在非常旧的)GNU系统。
GNU最初引入了-print0
谓词和-0
选项来xargs
代替:
find /path/to/parent -type f -print0 | xargs -0 grep 'XXX' /dev/null
现在有其他一些支持的实现,但是Solaris不支持。
上面,从理论上讲,您希望添加-r
选项以避免在grep
没有文件的情况下运行,但这不那么可移植,在这种情况下,不会产生功能上的差异
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句