Curti d+ a solução do Fernando. Muito Bom!!
Aproveitando a dica do Julio + o script do Fernando:
Você pode obter uma das suas n saídas individualmente através dos índices do
sed:
echo $a | sed -e 's/#[^#]#/1' -e 's/#//g' #1 ou nada ;)
* de script. Teste de script2. Ultimo teste de script3.
ech
2010/1/19 Julio C. Neves :
> Fala Daniel,
> Isso não vai resolver o teu problema especificamente,
Como não? :P
> -
>
> ${parâmetro^}
> -
>
> ${parâmetro,}
>
> Essas expansões foram introduzidas a partir do Bash 4.0 e modificam a caixa
> das letras do texto que está sendo expandido. Quando
Mauro,
Eis uma ideia: http://pastebin.com/d6ae9429e
Abraços,
Moacir Filho
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Moacir da Cruz Souza Filho
-Analista de Sistemas: Suporte Unix Avançado
Serviço Federal de Processamento de Dados
-Mestrando em Ciências da Co
Boa tarde lista. Sou fundador do Backtrack no Brasil (www.backtrack.com.br)
e convido a vocês a fazer parte da nossa comunidade em:
https://www.backtrack.com.br/forum.html
Nós estamos fazendo a tradução dos Plugins do OpenVAS (um fork do Nessus 2
quando era open-source) e convido todos você a aju
Dae Fernandão!
Os feras do sed também estão aqui! =)
Muito obrigado parceiro! Que solução elegante a sua. =)
Vou substituir minha solução Lusitana por ela.
Show de bola! Valeu mesmo.
[]s
Zaq
--- Em shell-script@yahoogrupos.com.br, Fernando Luizao
escreveu
>
> Acho que agora a saída está com
Em tempo..
Eu mexo muito com strings, tanto em Shell quando em outras
linguagens. Essa página [1], que está sempre guardada nos meus
bookmarks e que trata de JavaScript, já me deu várias ideias de como
manipular texto para um fim espefício em Shell. Tem até um código para
o seu caso [2].
Daniel,
Parâmetros como o \U, \L, \E são bastante úteis, mas não aparecem
no man do sed (ao menos no meu). Para maiores detalhes, acesse info
sed e busque pela seção * The "s" Command:: `sed''s Swiss Army Knife.
[]'s,
Moacir Filho
P.S.: Mestre Julio, tem que aparecer aqui por Brasília
Fala Daniel,
Isso não vai resolver o teu problema especificamente, mas vale para mostrar
para o pessoal as novidades do bash 4.0 que estou incorporando ao meu livro.
-
${parâmetro^}
-
${parâmetro,}
Essas expansões foram introduzidas a partir do Bash 4.0 e modificam a caixa
das letr
Muito obrigado Moacir e Ricardo... Não conhecia o \U, vou dar uma olhada
melhor nisso...
Valeu.
2010/1/19 Moacir Souza
>
>
> Daniel,
>
> De uma porrada só, sem pensar muito (tenho que correr para o almoço
> :D), eu pensei nisso:
>
> $ cat a
> Um teste Mais Legal
> moacir da cruz souza filho
> t
Daniel,
De uma porrada só, sem pensar muito (tenho que correr para o almoço
:D), eu pensei nisso:
$ cat a
Um teste Mais Legal
moacir da cruz souza filho
teste de string
$ cat a | sed -r "s/(^[a-z]| [a-z])/\U&/g"
Um Teste Mais Legal
Moacir Da Cruz Souza Filho
Teste De String
[]'s,
Moac
sed 's/\(^\)\?\([^ ]*\)/\u&/g' nomes.lst
2010/1/19 Daniel Merli Morais
>
>
> Pessoal, como converter apenas o primeiro caracter de cada palavra p/
> maiúsculo? Por exemplo, em um arquivo que contenha nomes próprios:
>
> João silva
> Fulano ciclano
> Maria oliveira
>
> Deveria ficar da seguinte f
Pessoal, como converter apenas o primeiro caracter de cada palavra p/
maiúsculo? Por exemplo, em um arquivo que contenha nomes próprios:
João silva
Fulano ciclano
Maria oliveira
Deveria ficar da seguinte forma:
João Silva
Fulano Ciclano
Maria Oliveira
Com o sed consigo localizar o padrão espaço
Acho que agora a saída está como vc quer:
a='#Teste# de #script#. Teste de #script2#. #Ultimo# teste de #script3#'
while echo $a | grep '#' > /dev/null
do
echo $a | sed 's/#[^#]*#/*/; s/#//g'
a=`echo $a | sed 's/#//; s/#//'`
done
Provavelmente dá pra simplificar os seds ;)
Abraços
Mestre Julio,
Testei aqui. Faltou um pequeno detalhe. O * tem que envolver a palavra. Na
verdade ele teria que substitui-la. Vou ver se organizo aqui o "frankstein" e
posto na lista.
[]s
Zaq
--- Em shell-script@yahoogrupos.com.br, Fernando Luizao
escreveu
>
> Júlio, aproveitando o embalo =)
Obrigado Julio, Vinicius.
Mais uma coisinha por hora, o arquivo eh identado como faço para incluir
tabulação, e como proceder pra algumas centenas de arquivos?
Ei xará daria pra usar um printf?
=D
2010/1/17 Vinicius Xavier
> Olá Julio,
>
>
>
> Eu fiz com esse comando
>
>
>
> cat arquivo | se
Oi Fernando,
Fiz o teste. Apenas a última linha casou:
Teste de *. Teste de #script2#. #Ultimo# teste de #script3#
Teste de script. Teste de *. #Ultimo# teste de #script3#
Teste de script. Teste de script2. * teste de #script3#
Teste de script. Teste de script2. Ultimo teste de *
De qualquer for
Oi Gunter,
Esse comando aí faz a substituição interativa do sed.
No caso o retorno seria um pouco diferente, conforme eu tentei explicar
anteriormente.
De qualquer forma, obrigado amigo pelo seu tempo e apoio.
[]s
Zaq
--- Em shell-script@yahoogrupos.com.br, Bruno Gunter escreveu
>
> Miko,
>
Grande Julio!
Obrigado pela resposta. Até ontem eu tava seguindo a linha do AWK. Já tinha até
solucionado, mas o código ficou tão MONSTRUOSO de feio e desarranjado que eu já
tinha vergonha de postar. Vendo o seu então, aí é que comprova mesmo o que eu
estava pensando! =)
De qualquer forma é bo
Júlio, aproveitando o embalo =)
Teria como dizer ao sed algo como "substitua as duas primeiras ocorrências", ou
"substitua a terceira e quinta ocorrências"? Por exemplo, para substituir as
duas primeiras eu concatenei dois comandos:
sed 's/#/*/; s/#/*/'
Existe uma forma melhor de fazer isso?
O sed tem uma facilidade que todos esquecem: no cmd 's', após a última
barra, podemos cologar o índice da substituição que desejamos fazer. Neste
campo, normalmente usamos 'g' para uma substituição global ou nada para
substituir somente a primeira ocorrência, mas acho que o que vc deseja é
isso:
$
On Mon, Jan 18, 2010 at 07:32:06PM -, mikoazul wrote:
>
>
>Oi Waldirio,
>
>A idéia é aquela mesma que eu postei originalmente.
>
>Não quero substituir todos os # por *. A idéia é a partir de uma linha de
>entrada eu gere n linhas de saída.
>
>Tudo baseado no texto entre
21 matches
Mail list logo