ngt
这是允许awk 函数的可选用户参数的好方法吗?
function nbstring(str, ngt) {
## Test whether string STR is non-blank.
## Return true when STR is non-blank.
if (length(gensub(/[[:blank:]]+/, "", "g", str)) > 0) {
if ( ngt == "dump" ) { print "return 1 for " str }
return 1
} else {
if ( ngt == "dump" ) { print "return 0 for " str }
return 0
}
}
我也用过条件
if (str && length(gensub(/[[:blank:]]+/, "", "g", str)) > 0) {
我得到了相同的结果。
因此,我认为不需要做str &&
,对吧?
你只是想测试一个字符串是否包含任何非空白?在任何 POSIX awk 中都是这样(不需要非 POSIX
gensub()
,也不需要任何其他*sub()
函数,也不需要调用length()
):如果您正在寻找惯用
awk
代码,我可以提供这个,但这与您自己的建议并没有太大不同,您可以调用
nbstring(str, ngt)
ornbstring(str)
或 indeednbstring()
,因为不计算函数的参数。