O comando “cut” pode ser muito útil para filtrar conteúdos em um arquivo. Com ele por exemplo, podemos filtrar apenas os usuários existentes no nosso sistema, que ficam dentro do arquivo /etc/passwd, sem as informações de UID, permissões etc.
Nos próximos exemplos, vou filtrar algumas informações do arquivo /etc/passwd, que possui este conteúdo:
Abaixo vejamos alguns exemplos práticos:
Preciso criar um arquivo com apenas os usuários existentes no meu sistema. Para isso posso usar o comando abaixo:
-d: --output-delimiter : = Delimitador (Vamos entender este parâmetro no próximo exemplo)
-f 1 = 1° coluna do arquivo que queremos filtrar
/etc/passwd = arquivo que queremos fazer a filtragem
> /etc/usuarios.txt = A saída do comando será direcionada para este arquivo.
#cut -d: --output-delimiter : -f 1 /etc/passwd > /etc/usuarios.txt
ou
#cut -d: -f 1 /etc/passwd > /etc/usuarios.txt
Portanto, neste exemplo, vou pegar apenas a primeira coluna do arquivo /etc/passwd (coluna com o nome dos usuários) e mandar esta coluna para o arquivo /etc/usuarios.txt, que se não existir será criada automaticamente. O conteúdo deste arquivo será este:
Agora digamos que preciso de um arquivo com a relação entre o nome do usuário X o tipo de shell que ele utiliza. Como podemos fazer isso ?
-d: --output-delimiter : = Delimita que cada coluna é dividida por ":"
-f 1,7 = Pegar apenas as colunas 1 (usuários) e 7 (tipo de shell)
/etc/passwd = arquivo que queremos fazer a filtragem
> /etc/usuarios.txt = A saída do comando será direcionada para este arquivo.
#cut -d: --output-delimiter : -f 1,7 /etc/passwd > /etc/usuarios.txt
ou
#cut -d: -f 1,7 /etc/passwd > /etc/usuarios.txt
Podemos também fazer desta forma:
onde:
-d: --output-delimiter = = Delimita que cada coluna é dividida por "=". Se quisermos em vez de um "=" ou um ":", colocar um espaço entre as duas colunas, podemos usar " ".
#cut -f 1,7 -d: --output-delimiter = /etc/passwd > /etc/usuarios.txt
Podemos também filtrar caracteres, desta forma:
#cut -c1-3 /etc/passwd > /etc/usuarios.txt
onde:
Para finalizar, este comando filtra o comando ifconfig e pega apenas as informações da coluna 13, referente ao endereço MACADDRESS da placa de rede eth6 e direciona o conteúdo para /etc/endereco_mac.txt
#ifconfig eth6 | grep eth | cut -d" " -f13 > /etc/endereco_mac.txt
Espero que tenham gostado e até a próxima.
0 comentários:
Postar um comentário