【问题标题】:Check if string contains in *.h files with shell script [duplicate]使用shell脚本检查字符串是否包含在* .h文件中[重复]
【发布时间】:2020-12-08 21:19:29
【问题描述】:

我想使用 shell 脚本检查字符串 abcd 是否包含在“/tmp/my 文件夹”目录中的 *.h 文件中的 1 个中

if grep -Fxr 'abcd' "/tmp/my folder/*.h"
then
    echo 'yes'
else
    echo 'not'
fi

但是我得到一个错误 /tmp/my folder/*.h No such file or directory

我该怎么做?

【问题讨论】:

    标签: linux shell grep


    【解决方案1】:

    不要将* 放在引号中。它不会被扩展。请改用"/tmp/my folder/"*.h(即仅引用必要的部分)。

    除此之外:如果您愿意,这个/tmp/"my folder"/*.h 也可以使用。

    使用引号的替代方法:

    使用反斜杠 (\) 转义,例如/tmp/my\ folder/*.h -- 但我一般建议不要这样做,因为在处理大量空格时它会变得非常难以阅读。

    【讨论】:

    • 即使使用"/tmp/my folder/"*.h 我仍然收到错误No such file or directory
    • 该目录中是否有 any 此类文件? ls -l "/tmp/my folder" 给了什么?
    • 那还是不行No such file or directory,连路径都没有;t包含空格(这个路径存在)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 2014-09-25
    • 2010-09-10
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    相关资源
    最近更新 更多