[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Substituição de parâmetros aceita regex?
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] Substituição de parâmetros aceita regex? |
Date: |
Fri, 14 Jun 2013 12:42:36 -0300 |
O Papo de
Botequim<https://wiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Ganhando_o_jogo_com_mais_coringa>tem
tudo... ;). Lá está escrito:
Não sei se é conhecimento de todos mas o shell possui, alem do
*globbing* normal
(a expansão *, ? e [a-z] de nomes de arquivos e diretórios), um *globbing*
extendido.
Acho que, em alguns casos, podera ser BEM util, eliminando um *pipe* para
um grep por exemplo.
São eles:
?(padrao)
Casa zero ou uma ocorrência de um determinado padrao
*(padrao)
Casa zero ou mais ocorrências de um determinado padrao
+(padrao)
Casa uma ou mais ocorrências de um determinado padrao
@(padrao)
Casa com exatamente uma ocorrência de um determinado padrao
!(padrao)
Casa com qualquer coisa, exceto com padrao
e depois mostra os seguintes exemplos:
$ shopt -s extglob
$ ls
file filename filenamename fileutils
$ ls file?(name)
file filename
$ ls file*(name)
file filename filenamename
$ ls file+(name)
filename filenamename
$ ls file@(name)
filename
$ ls file!(name) # divertido esse
file filenamename fileutils
$ ls file+(name|utils)
filename filenamename fileutils
$ ls file@(name|utils) # "lembra" um {name,utils}
filename fileutils
É isso aí Alfredo, chope tb é cultura. Pq vc fica se exasperando para
aprender Shell e não senta no Boteco e toma um chope conosco? ;)
Abcs,
Julio
*@juliobash
*
Em 14 de junho de 2013 11:13, Alfredo Casanova <address@hidden>escreveu:
> **
>
>
> Se sim, como fazer?
>
> Exemplo:
>
> NUMERO=005005005005
>
> quero tirar os leading zeros da forma mais performática possível
>
> com sed é fácil (s/^0*//')
> tentei fazer com subsituicao de parametros mas descobri q não aceita regex
> hehe
>
> $ echo ${NUMERO/^0*/}
> 005005005005
>
> $ expr $NUMERO + 0
> 5005005005
>
> qual seria a forma mais rápida?
>
> --
> []'s
> Alfredo Casanova
> Linux User #228230
> msn: address@hidden
> tel: +55 61 9655 9619
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
[As partes desta mensagem que não continham texto foram removidas]