✍️Lista de Exercícios 01

Lista de Exercícios :: Shell Scripts (básico)

  1. Escreva um script shell para pegar o conteúdo do arquivo /etc/passwd e exibir somente os nomes dos usuários e em ordem alfabética (dica: use o comando/filtro ‘cut’)

Resposta
#!/bin/bash
cat /etc/passwd | cut -d":" -f1 | sort
  1. Escreva um script shell que receba o nome de um arquivo (caminho absoluto) e exiba o número desse linhas do arquivo.

Resposta
#!/bin/bash
echo "Digite o nome do arquivo (caminho absoluto)"
read ARQUIVO
echo $(cat $ARQUIVO | wc -l)
  1. Escreva um script shell que receba o nome de um arquivo (caminho absoluto) e uma letra e exiba todas as linhas desse arquivo que contém essa letra informada.

Resposta
#!/bin/bash
echo $(cat $1 | grep $2)
  1. Escreva um arquivo com uma lista contendo duas colunas: nome e telefone. Em seguida, faça um script shell que receba um nome e exiba o telefone equivalente.

Resposta (arquivo: lista)
joao:1111
maria:2222
jose:3333
ana:4444
Resposta (script)
#!/bin/bash
echo $(cat ./lista | grep $1 | cut -d":" -f2)
  1. Escreva um script shell que receba o nome de um arquivo (caminho absoluto) e informe quantas linhas, quantas palavras e quantos caracteres tem esse arquivo, no formato: “Este arquivo tem X linhas, Y palavras e Z caracteres”

Resposta
#!/bin/bash
LINHAS=$(cat $1 | wc -l)
PALAVRAS=$(cat $1| wc -w)
CARACTERES=$(cat $1| wc -m)
echo "Este arquivo tem $LINHAS linhas, $PALAVRAS palavras e $CARACTERES caracteres" 
  1. Escreva um script shell que receba o nome de um diretório (caminho absoluto) e liste todos os arquivos desse diretório em ordem alfabética.

Resposta
#!/bin/sh
echo "$(ls $1 | sort)"
  1. Escreva um script shell que pergunte: “Qual arquivo deseja procurar” e ao ser executado apresente como resposta: “O caminho para o arquivo é ‘caminho’” (dica: utilize o comando ‘find’).

Resposta
#!/bin/bash
echo "Qual arquivo deseja procurar?"
read ARQUIVO
echo "O caminho para o arquivo é $(find / -name $ARQUIVO)"
  1. Escreva um script shell que receba o nome de um arquivo (caminho absoluto) e ao ser executado apresente como resposta o conteúdo da linha 5 desse arquivo.

Resposta
#!/bin/sh
echo "$(cat $1 | head -5 | tail -1)"
  1. Escreva um script shell para pegar o conteúdo do arquivo /etc/group e exibir somente os nomes dos grupos (primeira coluna) e em ordem alfabética e em caracteres maiúsculos (dica: use os comandos/filtros ‘cut’ e ‘tr’).

Resposta
#!/bin/bash
echo "$(cat /etc/group | cut -d":" -f1 | sort | tr a-z A-Z)"
  1. Escreva um script shell que receba o nome de um arquivo (caminho absoluto), uma letra para procurar e um número para trocar essa letra todas as vezes que a encontrar. Na execução, exibir o conteúdo com as trocas efetuadas.

Resposta
#!/bin/bash
echo "$(cat $1 | grep $2 | tr $2 $3)"

Atualizado