Alguns comandos úteis básicos
Já fornecemos a você um detalhamento básico de scripts de shell e um esboço de loops forex com base em exemplos, mas não deixe de conferir esses artigos caso tenha perdido o nosso guia de script de shell até o momento.
A linha de comando é maravilhosa por muitas razões, e o redirecionamento é um dos mais proeminentes. Se você tivesse que tomar nota e reproduzir a saída de todos os comandos para tomar mais providências ou usar isso para outra coisa, todos nós ficamos loucos há muito tempo. O redirecionamento nos permite usar essa saída e salvá-la ou usá-la imediatamente como uma entrada para outro comando. Também podemos usar arquivos como entradas para outros comandos.
Antes de continuarmos, vamos abordar alguns comandos básicos que podem ser úteis em muitos lugares diferentes.
eco - Este comando simplesmente imprime (exibe) a totalidade de seu argumento na linha de comando como saída
echo argument with spaces
gato - Este comando exibe o conteúdo dos arquivos de texto como saída.
cat file_to_be_read
Digamos que criamos este arquivo de texto em nano:
grep pattern file
Redirecionando Saídas
Para redirecionar a saída de um comando para um arquivo, fazemos uso de um caractere especial, o símbolo de maior que (>).
Vamos mudar a nossa lista, vamos? Digite o seguinte comando:
echo pepperoni > list
Também tome nota que o conteúdo anterior de "lista" foi removido. Tente de novo:
echo yellow peppers >> list
Vamos pegar a saída de um comando e colocá-lo em um arquivo:
ls –al / > ~/rootlist
Tubulação ou Encadeamento
Piping é assim chamado porque usa o pipe, (|; compartilhado com a tecla na maioria dos teclados). Essencialmente, ele pega a saída de um comando e o alimenta diretamente para outro. Você pode criar longas cadeias de comandos para obter uma saída desejada muito específica e é muito conveniente para comandos como o grep.
Como você pode ver, o grep faz distinção entre maiúsculas e minúsculas. Você pode usar o sinalizador "-i" para ignorar o caso.
Redirecionando Entradas
Você também pode obter entradas de arquivos para comandos usando o símbolo de menor que (<).
cat < list
Digamos que queremos filtrar qualquer palavra que tenha "interesse" em nosso arquivo "lista" atual para um novo arquivo chamado "revisões".
grep pep < list > revisions
grep pep < list | sort > revisions
Para ilustrar o comando sort, vamos ver o exemplo a seguir:
Um script simples
Vamos criar um script que tenha o seguinte formato:
script searchterm listfile
Ele pegará o termo e usará o grep para pesquisar em um arquivo de lista, classificar os resultados e, em seguida, enviá-los para outro arquivo.
Quanto à classificação, você pode fazer mais do que apenas ordenar alfabeticamente. Dê uma olhada na página man para alguns dos seguintes comandos:
- tsort - uma função de classificação topológica mais avançada
- tr - permite mapear caracteres específicos para outros personagens e transcrevê-los.
- uniq - remove qualquer não-exclusivo (read: duplicate)
- awk - uma linguagem / função de processamento de texto realmente avançada que pode ser usada para separar campos em nomes de arquivos
- cut, paste / join - comandos úteis para isolar campos de arquivos de texto e adicionar novos dados em colunas
- look - pesquisas como o grep, mas usa um arquivo de dicionário (que pode ser especificado pelo usuário) para a pesquisa
- wc - permite obter contagem de palavras, contagem de linhas, contagem de caracteres e muito mais
Nós demos uma olhada em mais alguns conceitos básicos hoje que podem ser tão úteis na linha de comando quanto nos scripts. Os dados baseados em texto são muitas vezes o cerne das coisas que usamos diariamente, por isso poder trabalhar com ele, pesquisá-lo e manipulá-lo é fundamental.
Quais são alguns dos seus scripts favoritos? Tem algum script de uso especial para arquivos baseados em texto? Compartilhe o que você sabe nos comentários!