May 2017
Beginner
552 pages
28h 47m
English
Awk can invoke a command and read the output. Place a command string within quotes and use the vertical bar to pipe the output to getline:
"command" | getline output ;
The following code reads a single line from /etc/passwd and displays the login name and home folder. It resets the field separator to a : in the BEGIN block and invokes grep in the main block.
$ awk 'BEGIN {FS=":"} { "grep root /etc/passwd" | getline; \
print $1,$6 }'
root /root