Estive usando gsub
ao usar gawk
, mas não está aceitando o 4º argumento. Como posso corrigir isso para obter uma string sem espaços em branco?
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]
}
}
Pelo menos a partir do GNU Awk 5.1.0, a
gsub
função recebe apenas 3 argumentos, modifica o terceiro argumento no lugar e retorna o número de substituições feitas.Se você quiser atribuir o resultado a uma nova string e deixar a entrada inalterada, você pode
gensub
usarNo entanto, observe que, embora
gsub
seja portátil,gensub
é uma extensão GNU awk - se você não precisa dos recursos avançadosgensub
(como substituição inversa), use,gsub
mas atribua a string primeiro:Veja O Guia do Usuário do GNU Awk: Funções de manipulação de strings .