você está aqui: Home  → Arquivo de Mensagens

awk - Comandos Úteis (1)

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 16 de Maio de 1997

Um utilitário bastante útil para manipulação de strings é o awk. O nome (bastante estranho por sinal) é derivado das iniciais de seus três criadores, Aho, Kernighan, e Weinberger. Funciona com pipes ou diretamente com arquivos.

Por exemplo, suponhamos que queiramos fazer alguma formatação em cima da saída do comando ls:

$ ls -l /tmp
total 184
srwxrwxrwx   1 queiroz  supsof         0 May  5 18:12 FvConSocke
-rw-r--r--   1 root     system       193 Apr 29 14:00 SM_OPO13zqd
-rw-r--r--   1 root     system       220 Apr 25 16:31 XX
-rw-r--r--   1 root     system       949 Apr 25 15:28 a
-rw-rw-rw-   1 root     system         0 Apr 25 19:12 errdemon.1708
  ....

Se não estivermos interessados em todos estes campos, podemos fazer uma seleção com o programa awk:

$ ls -l /tmp | awk '{print $9}'
FvConSocke
SM_OPO13zqd
XX
  ....

Se quisermos fazer uma listagem dos usuários de uma máquina em ordem alfabética podemos utilizar o arquivo /etc/passwd. A diferença é que o arquivo /etc/passwd possui o caractere : como delimitador de seus campos. Para especificar o caractere delimitador utilizamos a diretiva F:, como exemplificado abaixo:

$ awk -F":" '{print $1}' /etc/passwd | sort > list.txt

A saída do comando awk é redirecionada para o comando sort que faz a ordenação e o resultado é gravado no arquivo list.txt.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida