gsub
使用时一直在使用gawk
,但不接受第 4 个参数。我该如何修复此问题,以便获得没有空格的字符串?
for ( knam in tseq ) {
## Remove any blanks from array element astr[i]
str = "" ; gsub(/[[:blank:]]+/, "", astr[i], str)
if ( knam == str ) {
print "Matched line: " astr[i]
}
}
答案1
至少从 GNU Awk 5.1.0 开始,该gsub
函数仅接受 3 个参数,修改第三个参数到位,并返回所进行的替换次数。
如果你想将结果分配给新的字符串并保持输入不变,你可以gensub
使用
str = gensub(/[[:blank:]]/,"", "g", astr[i])
但请注意,虽然gsub
是可移植的,但gensub
它是 GNU awk 扩展 - 如果您不需要其高级功能gensub
(例如反向替换),则使用gsub
但先分配字符串:
str = astr[i]; gsub(/[[:blank:]]+/, "", str)