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 &&
それではあえてする必要はないようだが?
ベストアンサー1
文字列にスペースがないかテストしますか?これはすべてのPOSIX awkに当てはまります(POSIX以外のgensub()
関数*sub()
や呼び出しは必要ありませんlength()
)。
function nbstring(str, ngt, rslt) {
## Test whether string STR is non-blank.
## Return true when STR is non-blank.
rslt = ( str ~ /[^[:blank:]]/ )
if ( ngt == "dump" ) {
printf "return %d for %s\n", rslt, str
}
return rslt
}