shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] limitar caracter em string (HARDCORE)


From: Eliphas Levy Theodoro
Subject: Re: [shell-script] limitar caracter em string (HARDCORE)
Date: Thu, 07 Jul 2005 12:19:55 -0300
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)

Jorge Pereira escreveu:
opt_id="eu///tenho///um/////////////dir"

e quero que saia apenas "eu/tenho/um/dir"
tipo, deixar apenas um caracter caso tiver repetido...

aaaaa troque por a
tiver ,,,,,,,,,,, deixe apenas ,

1) Qual que é o lance de colocar (HARDCORE) em teus emails? Meu antispam animou-se a classificar você no meio dos spams de sexo da vida. E normalmente eu não fico olhando as mensagens de spam, mas como hoje tá meio devagar... ';)

2) Não é hardcore. Uma simples procura no google resolve.
http://www.google.com.br/search?q=remove+repeated+character
me retornou no terceiro match: a man page do "tr".

-s --squeeze-repeats
  replace each input sequence of a repeated character that is listed in
  SET1 with a single ocurrence of that character

Então, (também listado no man tr) você quer qualquer caractere, pode usar: "[:print:] all printable characters, including space"

$ echo blaaaaa,,,,lala//ugaabuga | tr -s [:print:]
bla,lala/ugabuga

Claro que você pode usar expressões regulares, um sed também resolve. Mas é tiro de canhão, a não ser que você tenha caracteres de comando no texto.

$ echo blaaaaa,,,,lala//ugaabuga | sed 's/\(.\)\1\+/\1/g'
bla,lala/ugabuga

[ ]'s
--
Eliphas


reply via email to

[Prev in Thread] Current Thread [Next in Thread]