awk notes

This commit is contained in:
sejo 2021-11-30 21:16:39 -06:00
parent 9fe2713920
commit 8f6ded7807
5 changed files with 73 additions and 1 deletions

View File

@ -0,0 +1,7 @@
# advent of code 2021: awk
my first time participating in advent of code!
=> https://adventofcode.com/2021/
decided to use {awk} as a programming language in order to keep practicing and learning it :)

View File

@ -14,6 +14,7 @@ recordatorios de procesos
=> ./imagemagick.gmi {imagemagick}
=> ./ed.gmi {ed}
=> ./postfix.gmi {postfix}
=> ./awk.gmi {awk}
## misc

62
src/awk.gmo Normal file
View File

@ -0,0 +1,62 @@
# awk
an awk-ward (or not really) language.
some notes in process.
# some built-in variables
* FS: input field separator (by default, space)
* RS: record field separator (by default, newline)
* NF: number of fields in current record
* NR: number of current record
* FNR: number of current record relative to current file
* OFS: output field separator (by default, space)
* ORS: output record separator (by default, newline)
* RLENGTH: length of the string matched by match( )
$0 represents the entire input record, and $n the nth field in the current record
=> https://www.tutorialspoint.com/awk/awk_built_in_variables.htm awk tutorial: built-in variables
# some built-in functions
=> https://www.tutorialspoint.com/awk/awk_built_in_functions.htm awk tutorial: built-in functions
=> https://www.tutorialspoint.com/awk/awk_miscellaneous_functions.htm miscellaneous functions
=> https://www.tutorialspoint.com/awk/awk_string_functions.htm string functions
## strings
the index of the first character is 1!
* index( string, sub) : index of sub as a substring of string
* length( string )
* match( string, regex ) : index of the longest match of regex in string
* split( string, arr, regex ) : split string into array using regex as separato
* printf( format, expr-list)
* strtonum(string): useful to convert from hexadecimal (0x prefix) or octal (0 prefix)
* gsub( regex, sub, string): global substitution of regex with sub in string. if string is ommited, $0 is used
* sub(regex, sub, string): substitute regex with sub in string, once. if string is omitted, $0 is used
* substr(string, start, len): returns the substring from start index, with length len. if len is ommitted, it goes until the end of the string
* tolower( str )
* toupper( str )
## misc
* getline: read the next line
* next: stops the current processing and start over with next line
* system: execute the specified command and returns its exit status
* delete: delete an element from an array, or an array
# other notes
## loop through the elements of an array
```
arr["a"] = 1
arr["b"] = 2
for(key in arr)
print key ": " arr[key]
```

View File

@ -6,6 +6,8 @@ developing the {qiudanz technique} in the context of a micro-residency in the sl
see the {qiudanz devlog} for updates!
participating in {advent of code 2021}
finished teaching an {intro to uxn programming} online workshop via babycastles academy!
practicing/learning skateboarding.

View File

@ -25,6 +25,6 @@ it is heavily inspired by xxiivv and several sites in that webring
the source files are written in a gemtext-like format, ready to be used in the {gemini} protocol, and to be easily convertible to html.
the site is built to its corresponding formats with a custom engine composed of a shell script, awk scripts, and a python script.
the site is built to its corresponding formats with a custom engine composed of a shell script, {awk} scripts, and a python script.
=> https://tildegit.org/sejo/compudanzas compudanzas site generator and source files