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
O 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