From Wikipedia:
AWK is a domain-specific language designed for text processing and typically used as a data extraction and reporting tool. Like sed and grep, it's a filter, and is a standard feature of most Unix-like operating systems.
We can do all sort of things with awk
, for example suppose that we have a CSV file which contains list of cities, Now we want to take this file and turn it into a JSON file, all we need to do is go to terminal and type this command:
awk 'BEGIN {
print "{ results: [" }
END {
print "]}\n"
}
{ gsub(/"/, "", $2) gsub(/"/, "", $3) gsub(/"/, "", $4)
print "{ id: " $1 ", name: \"" $2 "\", countryCode: \"" $3 "\", district: \"" $4 "\" }"
}' cities.csv
In fact awk
is a programming language which means that it if, loop, variable assignments,...
:
awk -v date="$(date)" -v title="Report Generated By Sirwan Afifi" -F';' 'BEGIN {
SPACE = 50;
printf("%s \n", title)
print "{ results: [" }
END {
print "]}\n"
for(space = 0; space < SPACE; space++) printf "-";
printf("\nFound %d results\n", city)
printf("Report generated at %s\n", date)
space = 0; do { if (space == 0 || space == 49)
printf "*"
else
printf "-"; space++
} while (space < SPACE);
print "\n"
}
{ city = city + 1
gsub(/"/, "", $2) gsub(/"/, "", $3) gsub(/"/, "", $4)
print "{ id: " $1 ", name: \"" $2 "\", countryCode: \"" $3 "\", district: \"" $4 "\" }"
}' cities.csv
Top comments (0)