使用unix make检查子字符串

时间:2012-10-23 15:20:34

标签: string unix

UNIX make中的编码,我写道:

cat $ sString | grep sSubstring > sResult

所以我想检查sString是否包含sSubString,如果是,请将结果放在sResult

背景:我已将文件的内容放在sString中 - 如果文件中存在sSubString,则sResult包含包含sSubString的文件的每一行

sSubString位于sString时,此方法正常。如果不是,我会得到Error Code 1

我该如何正确处理?完整的代码是:

cat $ sString | grep sSubstring > sResult
if [ -s sResult -gt 0 ];then \
(echo "substring present" ) \
else (echo "substring not present" ) ;fi

(使用错误代码,我从未进入 else 。)

2 个答案:

答案 0 :(得分:2)

要检查字符串中是否存在特定子字符串,可以使用“findstring”函数。 更多信息:http://www.gnu.org/software/make/manual/html_node/Text-Functions.html

答案 1 :(得分:1)

听起来你可能需要这个

cat $ sString | { grep sSubstring || true; } > sResult

See this solution。问题是,当grep找不到任何内容时,它会返回非零退出代码。 make会认为这是一个错误。因此,您只需要确保命令始终通过or返回零退出代码 - 退出代码grep,退出代码为truetrue的退出代码始终为0.