AWK - Funções de String
AWK tem as seguintes funções de String integradas -
asort (arr [, d [, como]])
Esta função classifica o conteúdo de arr usando as regras normais do GAWK para comparar valores e substitui os índices dos valores classificados arr com inteiros sequenciais começando com 1.
Exemplo
[jerry]$ awk 'BEGIN {
arr[0] = "Three"
arr[1] = "One"
arr[2] = "Two"
print "Array elements before sorting:"
for (i in arr) {
print arr[i]
}
asort(arr)
print "Array elements after sorting:"
for (i in arr) {
print arr[i]
}
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
Array elements before sorting:
Three
One
Two
Array elements after sorting:
One
Three
Two
asorti (arr [, d [, como]])
O comportamento desta função é o mesmo de asort(), exceto que os índices da matriz são usados para classificação.
Exemplo
[jerry]$ awk 'BEGIN {
arr["Two"] = 1
arr["One"] = 2
arr["Three"] = 3
asorti(arr)
print "Array indices after sorting:"
for (i in arr) {
print arr[i]
}
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
Array indices after sorting:
One
Three
Two
gsub (regex, sub, string)
gsubsignifica substituição global. Ele substitui todas as ocorrências de regex pela string (sub) fornecida. O terceiro parâmetro é opcional. Se for omitido, $ 0 será usado.
Exemplo
[jerry]$ awk 'BEGIN {
str = "Hello, World"
print "String before replacement = " str
gsub("World", "Jerry", str)
print "String after replacement = " str
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
String before replacement = Hello, World
String after replacement = Hello, Jerry
índice (str, sub)
Ele verifica se sub é uma substring de strou não. Em caso de sucesso, ele retorna a posição onde sub começa; caso contrário, retorna 0. O primeiro caractere destr está na posição 1.
Exemplo
[jerry]$ awk 'BEGIN {
str = "One Two Three"
subs = "Two"
ret = index(str, subs)
printf "Substring \"%s\" found at %d location.\n", subs, ret
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
Substring "Two" found at 5 location.
comprimento (str)
Ele retorna o comprimento de uma string.
Exemplo
[jerry]$ awk 'BEGIN {
str = "Hello, World !!!"
print "Length = ", length(str)
}'
Ao executar este código, você obtém o seguinte resultado -
Length = 16
correspondência (str, regex)
Ele retorna o índice da primeira correspondência mais longa de regex na corda str. Ele retorna 0 se nenhuma correspondência encontrada.
Exemplo
[jerry]$ awk 'BEGIN {
str = "One Two Three"
subs = "Two"
ret = match(str, subs)
printf "Substring \"%s\" found at %d location.\n", subs, ret
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
Substring "Two" found at 5 location
divisão (str, arr, regex)
Esta função divide a string str em campos por expressão regular regex e os campos são carregados no array arr. E seregex é omitido, então FS é usado.
Exemplo
[jerry]$ awk 'BEGIN {
str = "One,Two,Three,Four"
split(str, arr, ",")
print "Array contains following values"
for (i in arr) {
print arr[i]
}
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
Array contains following values
One
Two
Three
Four
printf (formato, lista expr)
Esta função retorna uma string construída a partir de expr-list de acordo com o formato.
Exemplo
[jerry]$ awk 'BEGIN {
param = 1024.0
result = sqrt(param)
printf "sqrt(%f) = %f\n", param, result
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
sqrt(1024.000000) = 32.000000
strtonum (str)
Esta função examina stre retornar seu valor numérico. Se str começar com um 0 à esquerda, ele será tratado como um número octal. Se str começar com um 0x ou 0X à esquerda, será considerado um número hexadecimal. Caso contrário, suponha que seja um número decimal.
Exemplo
[jerry]$ awk 'BEGIN {
print "Decimal num = " strtonum("123")
print "Octal num = " strtonum("0123")
print "Hexadecimal num = " strtonum("0x123")
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
Decimal num = 123
Octal num = 83
Hexadecimal num = 291
sub (regex, sub, string)
Esta função realiza uma única substituição. Ele substitui a primeira ocorrência do padrão regex pela string (sub) fornecida. O terceiro parâmetro é opcional. Se for omitido, $ 0 é usado.
Exemplo
[jerry]$ awk 'BEGIN {
str = "Hello, World"
print "String before replacement = " str
sub("World", "Jerry", str)
print "String after replacement = " str
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
String before replacement = Hello, World
String after replacement = Hello, Jerry
substr (str, start, l)
Esta função retorna a substring da string str, começando no índice start de comprimento l. Se o comprimento for omitido, o sufixo destr começando no índice start é devolvido.
Exemplo
[jerry]$ awk 'BEGIN {
str = "Hello, World !!!"
subs = substr(str, 1, 5)
print "Substring = " subs
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
Substring = Hello
tolower (str)
Esta função retorna uma cópia da string str com todos os caracteres maiúsculos convertidos em minúsculos.
Exemplo
[jerry]$ awk 'BEGIN {
str = "HELLO, WORLD !!!"
print "Lowercase string = " tolower(str)
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
Lowercase string = hello, world !!!
toupper (str)
Esta função retorna uma cópia da string str com todos os caracteres minúsculos convertidos em maiúsculas.
Exemplo
[jerry]$ awk 'BEGIN {
str = "hello, world !!!"
print "Uppercase string = " toupper(str)
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
Uppercase string = HELLO, WORLD !!!