shell script linux - Como usar o comando CUT

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:

-c1-3 = Mostra os 3 primeiros caracteres.


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.
Share on Google Plus

Sobre Carlos Castro

Administrador e autor do blog hostconfig.
    Blogger Comment
    Facebook Comment

0 comentários:

Postar um comentário