我使用以下语法作为 ksh 脚本的一部分来验证该词是否Validation
存在于LINE_FROM_FILE
.
[[ "${LINE_FROM_FILE##*Validation}" != "${LINE_FROM_FILE}" ]] && print "match Validation"
这种语法的问题是它也匹配像这样的单词Valid
or ValidationVALID
等等,我的目标是完全匹配这个词Validation
在变量中$LINE_FROM_FILE
.
我问是否也可以在我的脚本中使用 Perl 语法来完全匹配该单词Validation
, 例如:
[[ ` some perl command ` = Validation ]] && print "match Validation"
测试该行是否包含单词分隔字符之间的单词。一个有用的技巧是在字符串的开头和结尾添加单词分隔字符,以防单词位于字符串的开头或结尾。
[[ " $LINE_FROM_FILE " == *[![:alnum:]]Validation[![:alnum:]]* ]]
这假设单词仅由字母和数字组成。如果您有不同的定义,请调整模式。
请注意,您编写的测试,[[ "${LINE_FROM_FILE##*Validation}" != "${LINE_FROM_FILE}" ]]
, 是一种复杂的写法[[ $LINE_FROM_FILE = *Validation* ]]
(即检查Validation
作为子串)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)