Size: 1283
Comment:
|
Size: 1055
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
The '''Awk programming language''' is a scripting language for operating on text files. It is self-described as being a "data driven" tool; "you describe the data you want to work with and then what to do when you find it". | '''`awk(1)`''' is a scripting language designed for text processing. |
Line 5: | Line 5: |
There are several implementation of `awk(1)`, the most widely-used being GNU awk (or gawk). Brian Kernighan [[https://github.com/onetrueawk/awk|open-sourced]] the original Unix awk. [[BusyBox]] includes an implementation of POSIX awk. There are several revival/modernization projects, notably [[https://github.com/benhoyt/goawk|GoAWK]] which supports CSV as an input and output format. | There are several implementations: |
Line 7: | Line 7: |
See the [[https://www.gnu.org/software/gawk/manual/gawk.html|User Manual]] for more upstream information. | * Brian Kernighan [[https://github.com/onetrueawk/awk|open-sourced]] the original Unix implementation * '''GNU awk''' (or '''gawk''') is an extended implementation * [[BusyBox]] implements POSIX `awk(1)` * the modern revivalist [[https://github.com/benhoyt/goawk|GoAWK]] See the [[https://www.gnu.org/software/gawk/manual/gawk.html|GNU awk User Manual]] for further documentation. |
Line 17: | Line 22: |
A hello world program isn't helpful for awk, but here's an example anyway. |
|
Line 23: | Line 26: |
A better example would involve parsing a [[Linux/hosts|hosts file]]. | A more realistic example is extracting hostnames from the [[Linux/hosts|hosts file]]. |
Line 29: | Line 32: |
The awk syntax can be written to a script file and executed like: | Execute a script as: |
Line 39: | Line 42: |
To make an awk script executable, use `#! /bin/awk -f` as the shebang line. | To make an `awk(1)` script executable, use `#! /bin/awk -f` as the shebang line. ---- == Syntax == * [[Awk/Patterns|Patterns]] * [[Awk/Actions|Actions]] |
Awk
awk(1) is a scripting language designed for text processing.
There are several implementations:
Brian Kernighan open-sourced the original Unix implementation
GNU awk (or gawk) is an extended implementation
BusyBox implements POSIX awk(1)
the modern revivalist GoAWK
See the GNU awk User Manual for further documentation.
Example
awk 'BEGIN { print "hello world" }'
A more realistic example is extracting hostnames from the hosts file.
awk '/^[^#]/ { print $2 }' /etc/hosts
Execute a script as:
awk -f my-hosts-parser.awk /etc/hosts
Shebang
To make an awk(1) script executable, use #! /bin/awk -f as the shebang line.