Difference between revisions of "Awk"

From Hackepedia
Jump to navigationJump to search
m
m (added grep in awk example)
Line 1: Line 1:
 +
It's usually a better idea to use one command instead of using a [[pipe]] to another command, where possible. A common mistake I used to make:
 +
# grep root /etc/passwd | awk -F: '{print $7}'
 +
/bin/bash
 +
 +
which I was taught can be easily done all in awk:
 +
# awk -F: '/root/ {print $7}' /etc/passwd
 +
/bin/bash
 +
 +
 
I wanted to find out how much resident memory [[xfce4]] was using on my system, and it appears most xfce applications start with "xf":
 
I wanted to find out how much resident memory [[xfce4]] was using on my system, and it appears most xfce applications start with "xf":
 
  $ ps auwx | awk '/xf/{print $5}'
 
  $ ps auwx | awk '/xf/{print $5}'

Revision as of 19:02, 15 March 2006

It's usually a better idea to use one command instead of using a pipe to another command, where possible. A common mistake I used to make:

# grep root /etc/passwd | awk -F: '{print $7}'
/bin/bash

which I was taught can be easily done all in awk:

# awk -F: '/root/ {print $7}' /etc/passwd
/bin/bash


I wanted to find out how much resident memory xfce4 was using on my system, and it appears most xfce applications start with "xf":

$ ps auwx | awk '/xf/{print $5}'
15924
14668
11948
11764
12944
16264
1860


I wanted to use awk to add the results together instead of doing it manually:

$ ps auwx | awk '/xf/{ tot += $5 } END { print tot }'
69108

N.B. This can be misleading in the case of programs that use large amounts of shared memory (like java).