代码之家  ›  专栏  ›  技术社区  ›  Sridhar Sarnobat

grep-f和here文档

  •  1
  • Sridhar Sarnobat  · 技术社区  · 8 年前

    find -o

    find | grep -f <<EOF
    Controller.java
    Main.java
    Config.java
    EOF
    

    但我得到:

    grep: option requires an argument -- f
    

    我是不是误解了文件的工作原理?还是说grep-f不能很好地处理文件描述符?

    我也对解决方案持开放态度 find 这可能需要一个列表 -name -o 20次。


    最佳选择:

    cat <<EOF |  xargs --delimiter '\n' --max-args=1 -I% find -iname "*%*"
    Controller.java
    Main.java
    Config.java
    EOF
    

    发现

    1 回复  |  直到 8 年前
        1
  •  1
  •   Sridhar Sarnobat    8 年前

    #!/bin/sh
    
    find . | grep -f /proc/self/fd/3 3<< EOF
    Controller.java
    Main.java
    Config.java
    EOF
    

    或者,如果您的shell支持进程替换(Bourne shell不支持):

    #!/bin/bash
    
    find . | grep -f <( cat << EOF
    Controller.java
    Main.java
    Config.java
    EOF
    )