replace field on certain line with awk

Replace second field in line that start with root string

awk -F':' '/^root/{sub($2, "abc")}1' /etc/passwd
awk -F':' '/^root/{sub($2, "abc"); print}' /etc/passwd
awk -F':' '/^root/{sub($2, "abc")}1' /etc/passwd > newFile
awk -F':' '/^root/{sub($2, "abc")}/^root/' /etc/passwd >> newFile

Replace second field in line that have root string in first field

awk -F':' '$1~"root$"{sub($2, "abc")}1' /etc/passwd
awk -F':' '$1~"root$"{sub($2, "abc"); print}' /etc/passwd

CPU, Memory Usage by Apache

APACHE PROCESSES THAT CPU OR MEMORY IS LARGER THAN 0

ps -A --sort -rss -o pid,comm,pmem,pcpu,lstart | grep httpd | awk '($3>0) || ($4>0)'

TOTAL CPU USED BY THE APACHE PROCESS

ps -A --sort -rss -o pid,comm,pmem,pcpu | grep httpd | awk '{n+=$4} END {print n"%"}'

TOTAL MEMORY USED BY THE APACHE PROCESS

ps -A --sort -rss -o pid,comm,pmem,pcpu | grep httpd | awk '{n+=$3} END {print n"%"}

You can use server-status module to monitoring apache

lynx http://localhost/server-status?refresh=5

Básico AWK

Por padrão o campo separador é um espaço em branco.
As duas linhas abaixo fazem a mesma coisa:

ps -A -o pid,comm,pcpu | awk -F' ' '{print $1}'
ps -A -o pid,comm,pcpu | awk '{print $1}'

Imprimir todos IPs do Host

ip addr | awk '/inet /{print $2}' | cut -d'/' -f1

Imprimir IP de gateway

route -n | awk '/^0.0.0.0/ {print $2}'

Imprimir primeiro campo

awk -F ':' '{print $1}' /etc/passwd

Imprimir primeiro campo

awk -F ':' '{print $1}' /etc/passwd

Imprimir último campo

awk -F ':' '{print $NF}' /etc/passwd

Somar terceira coluna

ps -A -o pid,comm,pcpu | awk '{n+=$3} END {print n}'

Filtrar valores da terceira coluna maiores que 0.2

ps -A -o pid,comm,pcpu | awk '($3>0.2)'

Filtar segunda coluna com valor httpd e terceira coluna maior que 0.2

ps -A -o pid,comm,pcpu | awk '($2=="httpd") && ($3>0.2)'

Filtar terceira ou quarta coluna com valor superior a 0

ps -A -o pid,comm,pmem,pcpu | awk '($3>0) || ($4>0)'

Adicionar texto e numero de linha NR antes de valor

echo -e "uva\npera\nkiwi" | awk '{print "linha "NR" "$0}'

Apaga primeira coluna, imprime o resto da linha

ps -A -o pid,comm,pcpu,cmd | awk '{$1=""; print}'

Apaga primeira e segunda coluna, imprime o resto da linha

ps -A -o pid,comm,pcpu,cmd | awk '{$1=$2=""; print}'

Apaga primeira e segunda coluna, imprime o resto da linha quando terceira coluna for maior que 0.1

ps -A -o pid,comm,pcpu,cmd | awk '($3>0.1) {$1=$2=""; print}'

Filtrar nome de arquivos mesmo que tenham espaço em branco

find . -type f -ls | awk '{print substr( $0, index($0,$11) )}'

Guia AWK: http://www.grymoire.com/Unix/Awk.html