Stanford University School of Earth Science
 
Home
News
New Users
Policies
Network File Server
Web Server
Get Help
Net Connections
Your Macintosh
Your Windows PC
Your Unix/Linux System
Other School Resources
Using Unix
   Overview
   Documentation
   Accounts
   Using the Shell
   Using X-Windows
   File Manipulation
   Net Commands
   Editing Text
   Formatting Text
   Printing
   Filters & Utilities
   Programming

Simple awk examples

Last revision August 6, 2004

Table of Contents:

  1. Running awk
  2. awk commands
  3. Fields and variables in awk
  4. Patterns in awk
  5. Actions in awk
  6. Simple awk examples
 

These examples work on the pangea system, running Compaq (formerly Digital) Tru64 Unix version 4.0g. The output format of the ps command on other systems may vary.

     ps augx | awk '/^farrell/ || /^gp111ins/'
Run the ps command and extract only those lines for processes owned by either farrell or gp111ins. The process account name is the first field on the line.

     ps augx | awk '{print ($3*$4) " -- " $0}'
The third and fourth fields of the ps output show percent CPU and percent memory used by the process. Multiply them together to get a crude measure of overall resources. Print that new quantity followed by the original ps output line. Because concatenation of text takes precedence over multiplication of variables, you need to enclose the $3*$4 expression within parentheses so the multiplication is done first before concatenating its result to the -- string and the $0 variable (original line contents).

     ps augx | awk '$3 > 1.0'
Only show processes that are using at least 1.0% of the CPU time.

     ps augx | awk '$5 ~ /M/ {s=s+$5};END {print "total vm =" s}'
Add up the sum of virtual memory sizes being used by all processes that are using at least one Megabyte. The ps command on pangea shows memory use suffixed by K character (for Kilobytes) if less than 1024 Kilobytes, or M character (for Megabytes) if more. The suffixing character is ignored when awk converts string value to numeric value.

     awk '{print NR,$0}' input > output
Add line numbers to a file.

 


Comments?

Stanford University    |