Comandos em arquivos
grep
O comando grep
permite procurar strings dentro de arquivos de texto.
Exemplos:
- Procurar todas as linhas contendo “home” no arquivo
/etc/passwd
grep home /etc/passwd
- Procurar todas as linhas que não contenham a string “home” em
/etc/passwd
grep -v home /etc/passwd
find
O comando find
permite encontrar arquivos que satisfaçam certas características.
Vejamos alguns exemplos de busca:
- Procurar todas as entradas “*txt” dentro do diretório /usr:
find /usr -name '*txt' -print
- Procurar todas as entradas *ab* ou *cd* (maíusculas ou minúsculas) presentes em /opt
find /opt -iname '*ab*' -or -iname '*cd*'
- Procurar todas as entradas acessadas a mais de 3 dias em /etc:
find /etc -atime +3
- Procurar todas as entradas modificadas a menos de 2 dias em /etc que tenham mais de 5 Kbytes de tamanho:
find /etc -mtime -2 -and -size +5k
- Procurar todos os diretórios dentro de /opt cujo grupo tenha acesso em escrita:
find /opt -type d -perm +g+w
Para maiores informações sobre as opções disponíveis para esses comandos, consulte as páginas de manual do sistema.
cut
man cut
head & tail
man head man tail
sort
man sort
uniq
man uniq
diff
man diff
cat, tac & rev
man cat man tac man rev
wc
man wc
Exercícios
- Crie um arquivo com os dados de exemplo abaixo:
Fred apples 20 Susy oranges 5 Susy oranges 5 Mark watermellons 12 Robert pears 4 Terry oranges 9 Lisa peaches 7 Susy oranges 12 Mark grapes 39 Mark grapes 39 Anne mangoes 7 Greg pineapples 3 Oliver rockmellons 2 Betty limes 14
- Mostre apenas as 4 últimas linhas do arquivo
- Mostre a quantidade de caracteres que o arquivo possui
- Mostre apenas a primeira e última coluna do arquivo
- Ordene os dados pela última coluna (números)
- Crie um arquivo com os mesmos dados separados por ‘,’ (vírgula) e repita os exercícios 4 e 5
- Mostre os dados substituindo Mark por John
- Mostre os dados precedidos de numeração de linhas
- Mostre apenas linhas que não contenham a palavra “mangoes”
- Mostre apenas linhas que contenham as sequências “ea” ou “oe”
- O que faz o comando
tac
? - Mostre apenas linhas terminadas com o número ‘2’. Agora tente evitar que a linha terminada em 12 apareça também.
- Use o comando
find
para encontrar todos os links simbólicos presentes em/usr
. - O que faz o comando:
find /usr/share/doc/ -iname html
? - O que faz o comando:
find /usr/share/doc/ -iname *html
? - Mostre as últimas 15 linhas do arquivo /var/log/dmesg.
- Mostre na tela as 5 primeiras linhas do arquivo /var/log/dmesg.