Shell脚本字符串搜索,其中'#'不在第一个字符位置

时间:2010-11-09 04:43:56

标签: shell find grep xargs

这个字符串搜索由Paul.R提供(非常感谢保罗):

**找到dir -type f -print0 | xargs -0 grep -F -f strings.txt **

注意,我使用上面的搜索参数对shell脚本中的硬编码路径名执行递归目录搜索。但是,由于Unix环境(TRU64)的限制,我无法使用GREP -r开关来执行我的目录搜索。因此使用上面提供的解决方案。

作为附加条件,我想扩展此搜索参数以排除所搜索字符串的第一个前导字符为“#”(注释符号)的任何文本。

非常感谢任何反馈。

...谢谢埃文

2 个答案:

答案 0 :(得分:0)

我假设您只是试图限制您发布的命令的输出结果。如果是这样,那么

找到dir -type f -print0 | xargs -0 grep -F -f strings.txt | grep -v'^#'

最终的管道命令将忽略与正则表达式匹配的所有行^#(以#char开头)

答案 1 :(得分:0)

如果文件的路径和文件包含在strings.txt中,则此解决方案将无效,但它可能适用于您的情况。

find dir -type f -print0 | xargs -0 grep -v '^#' | grep -F -f strings.txt