Metacaracteres e pipes

Metacaracteres

Os metacaracteres são caracteres especiais do Shell usados para pesquisa, manipulações de arquivos e operações de texto.

Também são conhecidos como wild-cars ou curingas.

Lista de metacaracteres:

  • Asterisco ( * ): Substitui por 0 ou mais caracteres. Você pode listar todos os arquivos de texto usando esse metacaracter. Ou usar para fazer uma busca por todos os arquivos que iniciam com trabalho.

ls *.txt
ls trabalho*
  • Interrogação ( ? ): Usado para substituir um único caractere. Pode ser usado para listar todos os arquivos de textos que contém cinco caracteres.

ls ?????.txt
  • Colchetes ( [ ] ): Usado para representar um conjunto de caracteres. Pode ser usado junto um hífen ( - ) para indicar um intervalo de caracteres. Por exemplo, pode ser usado para listar arquivos que começa com a letra a até z e que sejam tipo texto.

ls [a-z]*.txt
  • Chaves ( {} ): Usado para especificar um grupo de expressões. Pode ser usado para listar todos os arquivos do tipos texto e pdf.

ls *.{txt, pdf}
  • Aspas ( " " ): Usado para tratar metacaracteres como caracteres comuns. Por exemplo, pode ser usado para buscar arquivos que realmente tenha um * no nome ou que possuem espaçamentos.

ls "*arquivo.pdf"
ls "arquivo de texto.txt"
  • Circunflexo e dólar ( ^ e $ ): Usado para fazer uma busca dentro de um arquivo. Por exemplo, para buscar dentro do arquivo linhas que iniciam com a palavra linux é usado um ^ no início da palavra que deseja buscar. E o & é usado para buscar linhas que possuem uma palavra no final.

Exemplo:

echo linux é o melhor sistema operacional > arquivo.txt

Para buscar essa frase no arquivo.txt pode ser usado o ^ ou o $.

grep '^linux' arquivo.txt
grep '&operacional' arquivo.txt
  • Barra invertida ( \ ): Retira a funcionalidade de um metacaracter. Para buscar um arquivo que possui um * no nome pode ser um barra invertido. O barra invertido também é usado como caractere especial de espaçamento em um nome de arquivo.

ls arq\* # o barra invetida inibiu a funcionaliade do metacaracter *
cd Área\ de\ Trabalho/

Pipes

Os pipes são usados para encadear comandos, permitindo que a saída (output) de um comando seja usada como entrada (input) para outro.

Para usar o pipe basta utilizar o caractere | entre dois comandos.

Exemplos de uso:

  • Contagem de número de arquivos em um diretório

ls | wc -l
  • Ordenar e remover linhas duplicadas de um arquivo

sort arquivo.txt | uniq
  • Gravar linhas de entradas específicas em um arquivo

ls -l | grep -e drwx > arquivo.txt

ls -l -> usado para listagem detalhada

| -> pipe que vai direcionar a saída (ls -l) para a entrada (grep -e drwx)

grep -> comando de filtragem

-e -> usado para especificar padrões, no caso o drwx

O comando grava em um arquivo.txt as linhas das entradas do diretório que tiveram como padrão a sequência drwx

Last updated