Tutorial de Bash Globbing

Tutorial de Bash Globbing
O Bash não suporta expressões regulares nativas, como algumas outras linguagens de programação padrão. O recurso Bash Shell que é usado para combinar ou expandir tipos específicos de padrões é chamado de globbing. O globbing é usado principalmente para combinar com os nomes de arquivos ou procurar conteúdo em um arquivo. Globbing usa caracteres curinga para criar o padrão. Os caracteres curinga mais comuns que são usados ​​para criar padrões de global são descritos abaixo.

Ponto de interrogação - (?)

'?' é usado para combinar com qualquer caractere. Você pode usar '?' por várias vezes para combinar vários caracteres.

Exemplo 1:

Suponha que você queira pesquisar os nomes de arquivos de texto cujos nomes têm 4 caracteres e a extensão é .TXT. Você pode aplicar o padrão de globbing usando '?'Quatro vezes para fazer esta tarefa.

Descubra a lista de todos os arquivos e pasta do diretório atual.

$ ls -l

Execute o seguinte comando pesquise os arquivos cujos nomes têm quatro caracteres de comprimento e desconhecido.

$ ls -l ????.TXT

Exemplo 2:

Suponha que você queira pesquisar os arquivos de documentos cujos nomes têm 8 caracteres, os 4 primeiros caracteres são f, o, o e t e extensão é Doc. Execute o seguinte comando com o padrão de globbing para pesquisar os arquivos.

$ ls -l Foot????.Doc

Exemplo 3:

Suponha que você sabe que o nome do arquivo é 'melhor' E a extensão tem 3 caracteres, mas não sei a extensão. Execute o seguinte comando usando '?'Para pesquisar todos os arquivos com o nome' teste 'com qualquer extensão de três caracteres.

$ ls -l melhor.???

Asterisk - (*)

'*' é usado para combinar zero ou mais caracteres. Se você tiver menos informações para pesquisar qualquer arquivo ou informação, poderá usar '*' no padrão de globbing.

Exemplo 1:

Suponha que você queira pesquisar todos os arquivos de 'pl' extensão. Execute o seguinte comando usando '*' Para fazer essa tarefa.

$ ls -l *.pl

Exemplo 2:

Suponha que você conhece o caráter inicial do nome do arquivo que é 'a'. Execute o seguinte comando usando '*' para pesquisar todos os arquivos do diretório atual cujos nomes são iniciados 'a'.

$ ls -l a*.*

Exemplo 3:

Você pode aplicar '*' no script bash para vários fins sem pesquisar arquivos. Crie um arquivo bash chamado 'verificar.sh ' com o seguinte script. Aqui, quando o usuário digitar 'y 'ou' y 'ou' sim 'ou' sim ' então 'confirmado' imprimirá e quando o tipo digitará 'n' ou 'n' ou 'não' ou 'não' então 'Não confirmado' irá imprimir.

#!/BIN/BASH
eco "Você quer confirmar?"
Leia a resposta
caso $ responda em
[Yy]*) eco "confirmado.";;
[Nn]*) eco "não confirmado.";;
*) eco "tente novamente.";;
ESAC

Execute o script.

$ Bash cheque.sh

Colchete - ([])

'[]' é usado para combinar com o personagem do intervalo. Algumas das declarações de alcance principalmente usadas são mencionadas abaixo.

Todos os alfabetos em maiúsculas são definidos pelo intervalo como, [: superior:] ou [a-z] .

Todos os alfabetos minúsculos são definidos pelo intervalo como, [: mais baixo:] ou [a-z].

Todos os dígitos numéricos são definidos pelo intervalo como, [: dígito:] ou [0-9].

Todas as maiúsculas e alfabetos mais baixos são definidos pela faixa como, [: alfa:] ou [a-za-z].

Todos os alfabetos em maiúsculas, alfabetos e dígitos minúsculos e dígitos são definidos pelo intervalo como, [: alnum:] ou [A-ZA-Z0-9]

Exemplo 1:

Execute o seguinte comando para pesquisar todos os arquivos e pastas cujo nome contém p ou q ou r ou s.

$ ls -l [p -s]*

Exemplo 2:

Execute o seguinte comando para pesquisar todos os arquivos e pastas cujo nome começa com qualquer dígito de 1 a 5.

$ ls -l [1-5]*

Caret - (^)

Você pode usar '^' com suporte quadrado para definir o padrão de globo mais especificamente. '^' pode ser usado dentro ou fora do suporte quadrado. '^' é usado fora do suporte quadrado para pesquisar o conteúdo do arquivo que começa com uma determinada variedade de caracteres. '^' é usado dentro do suporte quadrado para mostrar todo o conteúdo do arquivo, destacando as linhas que começam com uma determinada gama de caracteres . Você pode usar diferentes tipos de padrões de global para pesquisar conteúdo específico de um arquivo. 'grep' O comando é usado para pesquisa de conteúdo em bash. Suponha que você tenha um arquivo de texto chamado 'lista.TXT' com o seguinte conteúdo. Teste os seguintes exemplos para esse arquivo.

Maçã
4000
Banana
700
Laranja
850
Pera
9000
Jackduit

Exemplo 1:

Execute o seguinte comando para pesquisar essas linhas de lista.TXT arquivo que começa com P ou q ou r.

Lista de $ grep '^[p-r]'.TXT

Exemplo - 2:

Execute o seguinte comando para destacar essas linhas de lista.TXT arquivo que começa com A ou B ou C.

Lista de $ grep '[^a-c]'.TXT

Sinal exclamatório - (!)

Você pode usar '!' dentro do padrão de alcance. Funciona o mesmo que o uso do símbolo '^' fora do padrão de alcance. Alguns exemplos de uso '!' sinal são dados abaixo.

Exemplo 1:

Execute o seguinte comando para mostrar essas linhas de lista.TXT arquivo que começa com 'P' ou Q ou R.

$ grep [!P-r] Lista.TXT

Exemplo - 2:

Execute o seguinte comando para mostrar essas linhas de lista.TXT arquivo que começa com qualquer dígito de 4 a 8.

$ grep [!4-8] Lista.TXT

Sinal de dólar - ($)

'$' é usado para definir o personagem final. Se você sabe que deseja pesquisar informações com base no último caractere, você pode usar '$' no padrão de globbing.

Exemplo 1:

Execute o seguinte comando para pesquisar essas linhas de lista.TXT arquivo que termina com 'a'.

$ grep a $ list.TXT

Exemplo - 2:

Execute o seguinte comando para pesquisar essas linhas de lista.TXT Arquivo que termine com o número 50.

$ grep 50 $ lista.TXT

Suporte encaracolado - ()

'' pode ser usado para combinar nomes de arquivos com mais de um padrão de globo. Cada padrão é separado por '' em suporte encaracolado sem espaço. Alguns exemplos são dados abaixo.

Exemplo 1:

Execute o seguinte comando para pesquisar os arquivos cujos nomes têm 5 caracteres e a extensão é 'sh' ou os dois últimos caracteres dos arquivos são 'st' e a extensão é 'TXT'.

$ ls -l ?????.sh,*st.TXT

Exemplo - 2:

Execute o seguinte comando para excluir todos os arquivos cujas extensões são 'doc' ou 'docx'.

$ rm *.Doc,*.docx

Tubo- (|)

'|' O sinal também é usado para aplicar mais de uma condição no padrão de global. Cada padrão é separado por '|' Símbolo no comando.

Exemplo 1:

Execute o seguinte comando para pesquisar os nomes de arquivos que estão começando com o personagem 'A' e tem a extensão 'Bash' ou 'Sh'.

$ ls a*+(.Bash |.sh)

Exemplo - 2:

Crie um arquivo bash chamado 'cardápio.tocar ' e adicione o seguinte script. Se o tipo de usuário 1 ou s então vai imprimir “Pesquisando texto”. Se o tipo de usuário 2 ou r então ele vai imprimir “Substituindo o texto”. Se o tipo de usuário 3 ou d então vai imprimir “Excluindo texto”. Vai imprimir "Tente novamente" Para qualquer outra entrada.

#!/BIN/BASH
eco "selecione qualquer opção no menu:"
Leia a resposta
caso $ responda em
1 | S) Echo "Pesquisando Texto" ;;
2 | R) eco "substituindo o texto" ;;
3 | D) eco "Excluindo texto" ;;
*) eco "tente novamente.";;
ESAC

Execute o script.

Menu $ Bash.Bash

CONCLUSÃO

Alguns dos padrões de globo mais usados ​​são explicados neste tutorial usando exemplos muito simples. Espero que, depois de praticar os exemplos acima, o conceito de global ficará claro para você e você poderá aplicá -lo em comandos e scripts bash com sucesso.

Para mais informações, verifique este vídeo: