Social Icons

twitterfacebookgoogle plusrss feedemail

segunda-feira, 17 de fevereiro de 2014

Linux - Comando cut e awk

Filtrando colunas com o cut e awk.
O comando “cut” pode ser muito útil para conseguir listagens a partir de arquivos com separadores de colunas definidos.
Por exemplo, para conseguir o nome de todos os usuários da máquina, ou seja, a primeira coluna do arquivo “/etc/passwd” e também seu uid , cujo delimitador de colunas é o sinal “:”, podemos usar o comando:

# cut -f1 ,3 -d: --output-delimiter =" " / etc / passwd > / root / uid

Onde:
-f - coluna 1,3 - coluna 1 e 3 
-d - delimitador 
--output-delimiter- - delimitador da saída do comando.

O comando “awk” é um primo do “cut”, mas possui mais recursos e opções, por ser uma linguagem de programação. Há situações nas quais o “cut” não conseguirá resolver o problema, para elas use “awk”.

Para o mesmo exemplo acima, agora utilizando o awk:

# awk -F: ’{ print $1 ," ",$4}’ / etc / passwd > / root / gid

Onde:
-F - delimitador
print - imprime o valor da coluna especificada:
$1 - coluna1
$4 - coluna4
“ “ - delimitador da saída do comando

awk suporta mais opções que o cut, por exemplo executar novamente a busca anterior, mas desta vez trazer apenas os usuários que tenham uid inferior a 5:

# awk -F: ’($3 <= 5) { print $1 ,$3}’ / etc / passwd

Onde: 
($3 <= 5) equivale a: $3 - coluna3 <= - menor ou igual == - igual >= - maior ou igual 5 - valor de comparação

Nenhum comentário:

Postar um comentário