Arrayer
Vi tittar på arrayer.
#Skapa array
Vi skapar en array på följande sätt:
#!/usr/bin/env awk
BEGIN {
arr[0] = "something useful"
arr["key"] = "value"
print arr[0] # something useful
print arr["key"] # value
}
#Radera från array
#!/usr/bin/env awk
BEGIN {
arr[0] = "something useful"
arr["key"] = "value"
delete arr[0]
}
#Loopa igenom array
#!/usr/bin/env awk
BEGIN {
arr[0] = "something useful"
arr["key"] = "value"
for (val in arr) {
print arr[val]
}
}
Om vi blandar in phones.txt igen så hade vi kunnat använda array på följande vis:
#!/usr/bin/env awk
BEGIN {
FS=","
OFS="\t"
print "\nMärke\tModell\tPris\n"
arr["model"] = "Samsung"
arr["price"] = 8500
}
NR==1 { next }
{
if (arr["model"] == $1 && $3 < arr["price"]) {
print $1,$2,$3
}
}
#split()
Det finns en inbyggd funktion som är nyttig att känna till. Vi kan använda split()
på en sträng och skapa en array. Syntaxen är split(string, array, [delimiter])
. Om inte avgränsaren är satt, används FS.
#!/usr/bin/env awk
{
inputstring = "This/could/be/a/string"
split(inputstring, outputarray, "/")
print outputarray[2]
}
Ovan exempel skriver ut could
.
#Revision history
- 2020-02-12: (A, lew) Första versionen.