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

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s