Nessa quinta parte do tutorial será mostrado como
trabalhar com textos dentro do Shell. Para o Shell, todo o conteúdo do
computador é visto como um arquivo texto. E na verdade é, pois até
mesmo a memória é armazenada numa forma de texto (numérico) que é o
Hexadecimal.
Inicialmente precisamos de um texto, então é
necessário criar um em modo lista. Dentro do diretório padrão do
sistema /etc/group estão armazenados os grupos de usuários do sistema.
Para exibir na tela: cat /etc/groups
Para exibir na tela com linhas numeradas: cat –n /etc/groups
Para criar um arquivo de texto com a listagem exibida: cat –n /etc/groups > grupos.txt
Com o arquivo criado veremos se possui conteúdo da lista: cat grupos.txt
Vamos usar o pipe “|” para jogar a saída do comando em um novo comando apenas para testar o pipe: cat grupos.txt | more
Através do comando cut faremos um corte vertical
no arquivo para testes. Cortando o arquivo nos dois pontos e exibindo a
primeira parte: cat grupos.txt | cut –d: -f1
Mostrando a segunda parte agora: cat grupos.txt | cut –d: -f2
Mostrando a terceira parte agora: cat grupos.txt | cut –d: -f3
Mostrando a primeira e a segunda parte agora: cat grupos.txt | cut –d: -f1,2
Mostrando a primeira e a terceira parte agora: cat grupos.txt | cut –d: -f1,3
Mostrando apenas uma coluna, no caso a sexta: cat grupos.txt | cut –d: -c6
Mostrando da coluna 8 até 50: cat grupos.txt | cut –d: -c8-50
Vamos criar um novo arquivo com o ultimo comando: cat grupos.txt | cut –d: -c8-50 > semnumeracao.txt
Usando o mesmo artifício vamos ordenar o novo arquivo por ordem alfabética: cat semnumeracao.txt | sort
Vamos ordenar pela última coluna. Como a última
coluna é numérica então o sort deve vir acompanhado do –n, no caso: cat
semnumeracao.txt | sort -t”:” –k4 -n
O –t devera indicar onde o corte será feito, no caso nos dois pontos. O –k indica qual coluna de corte deverá ser ordenada.
Falta apenas Head e Tail. Para selecionar apenas
as 10 primeiras linhas do cabeçalho da mesma lista ordenada pela
terceira coluna: cat semnumeracao.txt | sort -t”:” –k4 –n | head -10
Para selecionar as 10 ultimas linhas da lista do ultimo arquivo criado: cat semnumeracao.txt | tail -10
Para selecionar o arquivo sem as 10 primeiras
linhas e sem as ultimas 10 linhas a sugestão é contar as linhas e fazer
uma intersecção entre Head e Tail. Supondo que são 50 linhas de lista
(usar o cat com –n para saber) então o comando seria: cat
semnumeracao.txt | head -40 | tail -30
O mesmo pode ser jogado num novo arquivo indicando o rodapé: cat semnumeracao.txt | tail -10 > rodape.txt
Busca por palavras usando grep para buscar linhas com a palavra “mail”: cat semnumeracao.txt | grep mail
Nenhum comentário:
Postar um comentário