Discussion:
[shell-script] Duvida manipulação de Strings
Rodrigo Cunha rodrigo.root.rj@gmail.com [shell-script]
2016-11-26 21:10:27 UTC
Permalink
srs, desejo manipular algumas strings para fazer uma expressão de soma,
mas não consigo fazer
Isso: 4244434353314
Virar isso: 4 + 2 + 4 + 4 + 4 + 3 + 4 + 3 + 5 + 3 + 3 + 1 + 4


Alguém tem alguma idéia de comando que é capaz de fazer essa façanha?
--
Atenciosamente,
Rodrigo da Silva Cunha
Robson Alexandre alexandrerobson@gmail.com [shell-script]
2016-11-26 21:38:11 UTC
Permalink
Rodrigo

A primeira coisa que me veio a mente é algo desta forma

awk 'END{
num=4244434353314;
split(num, digitos, "");
for(i=1;i<length(digitos);i++){
printf "%s+", digitos[i];
}
print digitos[i];}' <(echo)



Atenciosamente
Robson Alexandre
Post by Rodrigo Cunha ***@gmail.com [shell-script]
srs, desejo manipular algumas strings para fazer uma expressão de soma,
mas não consigo fazer
Isso: 4244434353314
Virar isso: 4 + 2 + 4 + 4 + 4 + 3 + 4 + 3 + 5 + 3 + 3 + 1 + 4
Alguém tem alguma idéia de comando que é capaz de fazer essa façanha?
--
Atenciosamente,
Rodrigo da Silva Cunha
--
Atenciosamente

Robson Alexandre
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2016-11-27 00:56:58 UTC
Permalink
Olha essas duas experiencias, vê se é isso:

$ echo $(echo 4244434353314 | sed -r 's/(.)/\1+/g')0
4+2+4+4+4+3+4+3+5+3+3+1+4+0
$ echo $(echo 4244434353314 | sed -r 's/(.)/\1+/g')0 | bc
44

Abcs,
Julio
*@juliobash*

*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by Rodrigo Cunha ***@gmail.com [shell-script]
srs, desejo manipular algumas strings para fazer uma expressão de soma,
mas não consigo fazer
Isso: 4244434353314
Virar isso: 4 + 2 + 4 + 4 + 4 + 3 + 4 + 3 + 5 + 3 + 3 + 1 + 4
Alguém tem alguma idéia de comando que é capaz de fazer essa façanha?
--
Atenciosamente,
Rodrigo da Silva Cunha
Luiz Alberto laomonteiro@yahoo.com.br [shell-script]
2016-11-27 10:22:06 UTC
Permalink
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>







<body style="background-color: #fff;">
<span style="display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
<div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

<div id="ygrp-text" >


<p>


<div class="moz-cite-prefix">On 26-11-2016 22:56, 'Julio C. Neves'
<a class="moz-txt-link-abbreviated" href="mailto:***@gmail.com">***@gmail.com</a> [shell-script] wrote:<br>
</div>
<blockquote cite="mid:CAJ=pi6=ZQjTnqe-odXx+***@mail.gmail.com" type="cite"> <span> </span>

<div id="ygrp-text">
<div dir="ltr">
<div class="gmail_default" style="font-family:monospace,monospace;">Olha essas duas
experiencias, vê se é isso:</div>
<div class="gmail_default" style="font-family:monospace,monospace;"><br>
</div>
<div class="gmail_default" style="font-family:monospace,monospace;">
<div class="gmail_default">$ echo $(echo 4244434353314 |
sed -r 's/(.)/\1&#43;/g')0</div>
<div class="gmail_default">4&#43;2&#43;4&#43;4&#43;4&#43;3&#43;4&#43;3&#43;5&#43;3&#43;3&#43;1&#43;4&#43;0</div>
<div class="gmail_default">$ echo $(echo 4244434353314 |
sed -r 's/(.)/\1&#43;/g')0 | bc</div>
<div class="gmail_default">44</div>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div class="gmail_signature" data="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div><span style="font-family:monospace,monospace;">Abcs,</span></div>
<div><span style="font-family:monospace,monospace;">Julio</span></div>
<div><span style="font-family:monospace,monospace;"><b style="font-size:small;color:rgb(102,102,102);">@juliobash</b></span></div>
<div><span style="font-family:monospace,monospace;"><b><span style="font-size:small;"><font color="#666666"><br>
</font><font color="#000000">P</font></span><font style="color:rgb(0,0,0);" size="2">róximos cursos de Shell</font></b></span></div>
<div><b style="color:rgb(204,0,0);font-size:small;font-family:monospace,monospace;">Cidade<span style="white-space:pre;"> </span> 
      Local<span style="white-space:pre;"> </span>Período</b><br>
</div>
<div>
<div style="font-size:12.8px;"><span style="font-size:12.8px;font-family:monospace,monospace;"><font size="2"><b><span style="white-space:pre-wrap;"><font color="#000000"><div style="font-family:monospace,monospace;">​</div></font></span></b></font></span><span style="font-size:12.8px;font-family:monospace,monospace;"><font size="2"><b><span style="white-space:pre-wrap;"><font color="#000000">São Paulo </font><font color="#1155cc"><a moz="true" href="https://www.4linux.com.br/curso/programacao-em-shell-script" target="_blank">4Linux</a></font></span><span style="color:rgb(0,0,0);white-space:pre-wrap;"> 05<div><span style="font-size:12.8px;"><font size="2"><b>-09/12</b></font></span></div></span></b></font></span><span style="font-size:12.8px;font-family:monospace,monospace;"><font color="#000000" size="2"><b><span style="white-space:pre-wrap;"> </span></b></font></span><img moz="true" src="Loading Image..." style="font-size:12.8px;"></div>
<span style="font-size:12.8px;font-family:monospace,monospace;"></span>
<div style="font-size:12.8px;"><span style="color:rgb(0,0,0);font-size:small;font-family:monospace,monospace;">Dou
treinamento de
</span><i style="color:rgb(0,0,0);font-size:small;font-family:monospace,monospace;">Shell</i><span style="color:rgb(0,0,0);font-size:small;font-family:monospace,monospace;">
em qualquer
cidade.</span><br>
</div>
</div>
<div><span style="font-family:monospace,monospace;"><font color="#000000" size="2">Para mais detalhes, me mande um <a moz="true" href="mailto:***@gmail.com" target="_blank">e-mail</a>.</font></span></div>
<div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">Em 26 de novembro de 2016 19:10,
Rodrigo Cunha <a moz="true" href="mailto:***@gmail.com">***@gmail.com</a>
[shell-script] <span dir="ltr">&lt;<a moz="true" href="mailto:shell-***@yahoogrupos.com.br" target="_blank">shell-***@yahoogrupos.com.br</a>&gt;</span>
escreveu:<br>
<blockquote class="gmail_quote" style="border-left:1px
#ccc solid;">
<div style="background-color:#fff;">
<span> </span>
<div id="m_8675440743220186180ygrp-mlmsg">
<div id="m_8675440743220186180ygrp-msg">
<div id="m_8675440743220186180ygrp-text">
<div dir="ltr">
<div>
<div>srs, desejo manipular algumas strings
para fazer uma expressão de soma,<br>
</div>
mas não consigo fazer <br>
</div>
Isso: 4244434353314<br>
<div>Virar isso: 4 + 2 + 4 + 4 + 4 + 3 + 4 +
3 + 5 + 3 + 3 + 1 + 4<br>
</div>
<div><br clear="all">
</div>
<div>
<div>
<div><br>
</div>
<div>Alguém tem alguma idéia de comando
que é capaz de fazer essa façanha?<br>
</div>
<div><br>
-- <br>
<div class="m_8675440743220186180gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">Atenciosamente,<br>
Rodrigo da Silva Cunha<br>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>


<!-- end group email -->
</blockquote>
<p>Rodrigo,</p>
<p>Poderia ser feito dessa forma e não há a preocupação com o tam do
string:<br>
<br>
num=4244434353314<br>
echo $num | gawk -v num=${num} ' BEGIN {tam = length(num)} { for
(i = 1 ; i &lt;= tam ;  i&#43;+)  print substr(num,i,1)"+" } END {
print "0"} ' | paste -sd" " | bc</p>
<p>Luiz A Monteiro<br>
</p>


</p>

</div>


<!--~-|**|PrettyHtmlStart|**|-~-->
<div style="color: #fff; height: 0;">__._,_.___</div>






<div style="clear:both"> </div>

<div id="fromDMARC" style="margin-top: 10px;">
<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
Enviado por: Luiz Alberto &lt;***@yahoo.com.br&gt; <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>
<div style="clear:both"> </div>

<table cellspacing=4px style="margin-top: 10px; margin-bottom: 10px; color: #2D50FD;">
<tbody>
<tr>
<td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px;" >
<a style="text-decoration: none; color: #2D50FD" href="https://br.groups.yahoo.com/neo/groups/shell-script/conversations/messages/39848;_ylc=X3oDMTJxNjJubXE1BF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BG1zZ0lkAzM5ODQ4BHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTQ4MDI0MjEzNA--?act=reply&messageNum=39848">Responder através da web</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="mailto:***@yahoo.com.br?subject=Res%3A%20Re%3A_%5Bshell-script%5D_Duvida_manipula%3Dc3%3Da7%3Dc3%3Da3o_de_Strings" style="text-decoration: none; color: #2D50FD;">
</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;">
<a href="mailto:shell-***@yahoogrupos.com.br?subject=Res%3A%20Re%3A_%5Bshell-script%5D_Duvida_manipula%3Dc3%3Da7%3Dc3%3Da3o_de_Strings" style="text-decoration: none; color: #2D50FD">
através de email </a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="https://br.groups.yahoo.com/neo/groups/shell-script/conversations/newtopic;_ylc=X3oDMTJlZW1kOWJqBF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTQ4MDI0MjEzNA--" style="text-decoration: none; color: #2D50FD">Adicionar um novo tópico</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;color: #2D50FD;" >
<a href="https://br.groups.yahoo.com/neo/groups/shell-script/conversations/topics/39845;_ylc=X3oDMTM2OTMxb2RoBF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BG1zZ0lkAzM5ODQ4BHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTQ4MDI0MjEzNAR0cGNJZAMzOTg0NQ--" style="text-decoration: none; color: #2D50FD;">Mensagens neste tópico</a>
(4)
</td>
</tr>
</tbody>
</table>



<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->


<div id="ygrp-grfd" style="font-family: Verdana; font-size: 12px; padding: 15px 0;">

<!-- |**|begin egp html banner|**| -->

---------------------------------------------------------------------<BR>
Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.<BR>
---------------------------------------------------------------------<BR>
Sair da lista: shell-script-***@yahoogrupos.com.br<BR>
---------------------------------------------------------------------<BR>
Esta lista é moderada de acordo com o previsto em <a href="http://www.listas-discussao.cjb.net">http://www.listas-discussao.cjb.net</a><BR>
---------------------------------------------------------------------<BR>
Servidor Newsgroup da lista: news.gmane.org<BR>
Grupo: gmane.org.user-groups.programming.shell.brazil<BR>
<BR>

<!-- |**|end egp html banner|**| -->

</div>




<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

<span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="https://br.groups.yahoo.com/neo/groups/shell-script/info;_ylc=X3oDMTJlZjFsMTFrBF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTQ4MDI0MjEzNA--" style="text-decoration: none;">Visite seu Grupo</a></span>

<ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
</ul>
</div>


<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
<a href="https://br.groups.yahoo.com/neo;_ylc=X3oDMTJkMTVvaDQyBF9TAzk3NDkwNDM1BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNDgwMjQyMTM0" style="float: left;"><img src="Loading Image..." height="19" width="141" alt="Yahoo! Grupos" style="border: 0;"/></a>
<div style="color: #747575; float: right;"> &bull; <a href="https://info.yahoo.com/privacy/br/yahoo/groups/details.html" style="text-decoration: none;">Privacidade</a> &bull; <a href="mailto:shell-script-***@yahoogrupos.com.br?subject=Sair do grupo" style="text-decoration: none;">Sair do grupo</a> &bull; <a href="https://info.yahoo.com/legal/br/yahoo/utos/terms/" style="text-decoration: none;">Termos de uso</a> </div>
</div>
<br>

<!-- |**|end egp html banner|**| -->

</div> <!-- ygrp-msg -->


<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id="ygrp-reco">
</div>
<!-- End Recommendations -->



</div> <!-- |**|end egp html banner|**| -->

<div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>

<img src="http://geo.yahoo.com/serv?s=97490437/grpId=1941312/grpspId=2137111254/msgId=39848/stime=1480242134" width="1" height="1"> <br>

<img src="http://y.analytics.yahoo.com/fpc.pl?ywarid=515FB27823A7407E&a=10001310322279&js=no&resp=img" width="1" height="1">

<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mkp {
border: 1px solid #d8d8d8;
font-family: Arial;
margin: 10px 0;
padding: 0 10px;
}

#ygrp-mkp hr {
border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
color: #628c2a;
font-size: 85%;
font-weight: 700;
line-height: 122%;
margin: 10px 0;
}

#ygrp-mkp #ads {
margin-bottom: 10px;
}

#ygrp-mkp .ad {
padding: 0 0;
}

#ygrp-mkp .ad p {
margin: 0;
}

#ygrp-mkp .ad a {
color: #0000ff;
text-decoration: none;
}
#ygrp-sponsor #ygrp-lc {
font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
margin: 10px 0px;
font-weight: 700;
font-size: 78%;
line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
margin-bottom: 10px;
padding: 0 0;
}

#actions {
font-family: Verdana;
font-size: 11px;
padding: 10px 0;
}

#activity {
background-color: #e0ecee;
float: left;
font-family: Verdana;
font-size: 10px;
padding: 10px;
}

#activity span {
font-weight: 700;
}

#activity span:first-child {
text-transform: uppercase;
}

#activity span a {
color: #5085b6;
text-decoration: none;
}

#activity span span {
color: #ff7900;
}

#activity span .underline {
text-decoration: underline;
}

.attach {
clear: both;
display: table;
font-family: Arial;
font-size: 12px;
padding: 10px 0;
width: 400px;
}

.attach div a {
text-decoration: none;
}

.attach img {
border: none;
padding-right: 5px;
}

.attach label {
display: block;
margin-bottom: 5px;
}

.attach label a {
text-decoration: none;
}

blockquote {
margin: 0 0 0 4px;
}

.bold {
font-family: Arial;
font-size: 13px;
font-weight: 700;
}

.bold a {
text-decoration: none;
}

dd.last p a {
font-family: Verdana;
font-weight: 700;
}

dd.last p span {
margin-right: 10px;
font-family: Verdana;
font-weight: 700;
}

dd.last p span.yshortcuts {
margin-right: 0;
}

div.attach-table div div a {
text-decoration: none;
}

div.attach-table {
width: 400px;
}

div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
text-decoration: none;
}

div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited {
text-decoration: none;
}

div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
font-family: Verdana;
font-size: 10px;
font-weight: normal;
}

.green {
color: #628c2a;
}

.MsoNormal {
margin: 0 0 0 0;
}

o {
font-size: 0;
}

#photos div {
float: left;
width: 72px;
}

#photos div div {
border: 1px solid #666666;
height: 62px;
overflow: hidden;
width: 62px;
}

#photos div label {
color: #666666;
font-size: 10px;
overflow: hidden;
text-align: center;
white-space: nowrap;
width: 64px;
}

#reco-category {
font-size: 77%;
}

#reco-desc {
font-size: 77%;
}

.replbq {
margin: 4px;
}

#ygrp-actbar div a:first-child {
/* border-right: 0px solid #000;*/
margin-right: 2px;
padding-right: 5px;
}

#ygrp-mlmsg {
font-size: 13px;
font-family: Arial, helvetica,clean, sans-serif;
*font-size: small;
*font: x-small;
}

#ygrp-mlmsg table {
font-size: inherit;
font: 100%;
}

#ygrp-mlmsg select, input, textarea {
font: 99% Arial, Helvetica, clean, sans-serif;
}

#ygrp-mlmsg pre, code {
font:115% monospace;
*font-size:100%;
}

#ygrp-mlmsg * {
line-height: 1.22em;
}

#ygrp-mlmsg #logo {
padding-bottom: 10px;
}


#ygrp-msg p a {
font-family: Verdana;
}

#ygrp-msg p#attach-count span {
color: #1E66AE;
font-weight: 700;
}

#ygrp-reco #reco-head {
color: #ff7900;
font-weight: 700;
}

#ygrp-reco {
margin-bottom: 20px;
padding: 0px;
}

#ygrp-sponsor #ov li a {
font-size: 130%;
text-decoration: none;
}

#ygrp-sponsor #ov li {
font-size: 77%;
list-style-type: square;
padding: 6px 0;
}

#ygrp-sponsor #ov ul {
margin: 0;
padding: 0 0 0 8px;
}

#ygrp-text {
font-family: Georgia;
}

#ygrp-text p {
margin: 0 0 1em 0;
}

#ygrp-text tt {
font-size: 120%;
}

#ygrp-vital ul li:last-child {
border-right: none !important;
}
-->
</style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->
itamarnet@yahoo.com.br [shell-script]
2016-11-27 23:21:10 UTC
Permalink
Na mesma linha da solução do Luiz Alberto, poderia ser também:

echo 4244434353314 | gawk -F "" '{ while (++i<NF) printf $i "+"; print $i }'| bc -l

[]'s
Itamar
Luiz Alberto laomonteiro@yahoo.com.br [shell-script]
2016-11-27 23:32:39 UTC
Permalink
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>







<body style="background-color: #fff;">
<span style="display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
<div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

<div id="ygrp-text" >


<p>


<div class="moz-cite-prefix">On 27-11-2016 21:21,
<a class="moz-txt-link-abbreviated" href="mailto:***@yahoo.com.br">***@yahoo.com.br</a> [shell-script] wrote:<br>
</div>
<blockquote cite="mid:o1fpp6+***@YahooGroups.com" type="cite"> <span> </span>

<div id="ygrp-text">
<p>Na mesma linha da solução do Luiz Alberto, poderia ser
também:<br>
<br>
echo 4244434353314 | gawk -F "" '{ while (&#43;+i&lt;NF)
printf $i "+"; print $i }'| bc -l<br>
<br>
[]'s<br>
Itamar</p>
</div>


<!-- end group email -->
</blockquote>
<p>Muito boa a tua solução Itamar !!!</p>
<p>Luiz A Monteiro<br>
</p>


</p>

</div>


<!--~-|**|PrettyHtmlStart|**|-~-->
<div style="color: #fff; height: 0;">__._,_.___</div>






<div style="clear:both"> </div>

<div id="fromDMARC" style="margin-top: 10px;">
<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
Enviado por: Luiz Alberto &lt;***@yahoo.com.br&gt; <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>
<div style="clear:both"> </div>

<table cellspacing=4px style="margin-top: 10px; margin-bottom: 10px; color: #2D50FD;">
<tbody>
<tr>
<td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px;" >
<a style="text-decoration: none; color: #2D50FD" href="https://br.groups.yahoo.com/neo/groups/shell-script/conversations/messages/39850;_ylc=X3oDMTJxOG1zdGkxBF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BG1zZ0lkAzM5ODUwBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTQ4MDI4OTU2Ng--?act=reply&messageNum=39850">Responder através da web</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="mailto:***@yahoo.com.br?subject=Res%3A%20Re%3A_%5Bshell-script%5D_Duvida_manipula%3Dc3%3Da7%3Dc3%3Da3o_de_String%20s" style="text-decoration: none; color: #2D50FD;">
</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;">
<a href="mailto:shell-***@yahoogrupos.com.br?subject=Res%3A%20Re%3A_%5Bshell-script%5D_Duvida_manipula%3Dc3%3Da7%3Dc3%3Da3o_de_String%20s" style="text-decoration: none; color: #2D50FD">
através de email </a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="https://br.groups.yahoo.com/neo/groups/shell-script/conversations/newtopic;_ylc=X3oDMTJlZGJkMWM4BF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTQ4MDI4OTU2Ng--" style="text-decoration: none; color: #2D50FD">Adicionar um novo tópico</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;color: #2D50FD;" >
<a href="https://br.groups.yahoo.com/neo/groups/shell-script/conversations/topics/39845;_ylc=X3oDMTM2NHFqamZrBF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BG1zZ0lkAzM5ODUwBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTQ4MDI4OTU2NgR0cGNJZAMzOTg0NQ--" style="text-decoration: none; color: #2D50FD;">Mensagens neste tópico</a>
(6)
</td>
</tr>
</tbody>
</table>



<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->


<div id="ygrp-grfd" style="font-family: Verdana; font-size: 12px; padding: 15px 0;">

<!-- |**|begin egp html banner|**| -->

---------------------------------------------------------------------<BR>
Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.<BR>
---------------------------------------------------------------------<BR>
Sair da lista: shell-script-***@yahoogrupos.com.br<BR>
---------------------------------------------------------------------<BR>
Esta lista é moderada de acordo com o previsto em <a href="http://www.listas-discussao.cjb.net">http://www.listas-discussao.cjb.net</a><BR>
---------------------------------------------------------------------<BR>
Servidor Newsgroup da lista: news.gmane.org<BR>
Grupo: gmane.org.user-groups.programming.shell.brazil<BR>
<BR>

<!-- |**|end egp html banner|**| -->

</div>




<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

<span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="https://br.groups.yahoo.com/neo/groups/shell-script/info;_ylc=X3oDMTJlNmFpajJsBF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTQ4MDI4OTU2Ng--" style="text-decoration: none;">Visite seu Grupo</a></span>

<ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
</ul>
</div>


<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
<a href="https://br.groups.yahoo.com/neo;_ylc=X3oDMTJkdml0aHV1BF9TAzk3NDkwNDM1BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNDgwMjg5NTY2" style="float: left;"><img src="http://l.yimg.com/ru/static/images/yg/img/email/new_logo/yahoo_groups_pt-BR_141x19.png" height="19" width="141" alt="Yahoo! Grupos" style="border: 0;"/></a>
<div style="color: #747575; float: right;"> &bull; <a href="https://info.yahoo.com/privacy/br/yahoo/groups/details.html" style="text-decoration: none;">Privacidade</a> &bull; <a href="mailto:shell-script-***@yahoogrupos.com.br?subject=Sair do grupo" style="text-decoration: none;">Sair do grupo</a> &bull; <a href="https://info.yahoo.com/legal/br/yahoo/utos/terms/" style="text-decoration: none;">Termos de uso</a> </div>
</div>
<br>

<!-- |**|end egp html banner|**| -->

</div> <!-- ygrp-msg -->


<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id="ygrp-reco">
</div>
<!-- End Recommendations -->



</div> <!-- |**|end egp html banner|**| -->

<div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>

<img src="http://geo.yahoo.com/serv?s=97490437/grpId=1941312/grpspId=2137111254/msgId=39850/stime=1480289566" width="1" height="1"> <br>

<img src="http://y.analytics.yahoo.com/fpc.pl?ywarid=515FB27823A7407E&a=10001310322279&js=no&resp=img" width="1" height="1">

<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mkp {
border: 1px solid #d8d8d8;
font-family: Arial;
margin: 10px 0;
padding: 0 10px;
}

#ygrp-mkp hr {
border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
color: #628c2a;
font-size: 85%;
font-weight: 700;
line-height: 122%;
margin: 10px 0;
}

#ygrp-mkp #ads {
margin-bottom: 10px;
}

#ygrp-mkp .ad {
padding: 0 0;
}

#ygrp-mkp .ad p {
margin: 0;
}

#ygrp-mkp .ad a {
color: #0000ff;
text-decoration: none;
}
#ygrp-sponsor #ygrp-lc {
font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
margin: 10px 0px;
font-weight: 700;
font-size: 78%;
line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
margin-bottom: 10px;
padding: 0 0;
}

#actions {
font-family: Verdana;
font-size: 11px;
padding: 10px 0;
}

#activity {
background-color: #e0ecee;
float: left;
font-family: Verdana;
font-size: 10px;
padding: 10px;
}

#activity span {
font-weight: 700;
}

#activity span:first-child {
text-transform: uppercase;
}

#activity span a {
color: #5085b6;
text-decoration: none;
}

#activity span span {
color: #ff7900;
}

#activity span .underline {
text-decoration: underline;
}

.attach {
clear: both;
display: table;
font-family: Arial;
font-size: 12px;
padding: 10px 0;
width: 400px;
}

.attach div a {
text-decoration: none;
}

.attach img {
border: none;
padding-right: 5px;
}

.attach label {
display: block;
margin-bottom: 5px;
}

.attach label a {
text-decoration: none;
}

blockquote {
margin: 0 0 0 4px;
}

.bold {
font-family: Arial;
font-size: 13px;
font-weight: 700;
}

.bold a {
text-decoration: none;
}

dd.last p a {
font-family: Verdana;
font-weight: 700;
}

dd.last p span {
margin-right: 10px;
font-family: Verdana;
font-weight: 700;
}

dd.last p span.yshortcuts {
margin-right: 0;
}

div.attach-table div div a {
text-decoration: none;
}

div.attach-table {
width: 400px;
}

div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
text-decoration: none;
}

div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited {
text-decoration: none;
}

div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
font-family: Verdana;
font-size: 10px;
font-weight: normal;
}

.green {
color: #628c2a;
}

.MsoNormal {
margin: 0 0 0 0;
}

o {
font-size: 0;
}

#photos div {
float: left;
width: 72px;
}

#photos div div {
border: 1px solid #666666;
height: 62px;
overflow: hidden;
width: 62px;
}

#photos div label {
color: #666666;
font-size: 10px;
overflow: hidden;
text-align: center;
white-space: nowrap;
width: 64px;
}

#reco-category {
font-size: 77%;
}

#reco-desc {
font-size: 77%;
}

.replbq {
margin: 4px;
}

#ygrp-actbar div a:first-child {
/* border-right: 0px solid #000;*/
margin-right: 2px;
padding-right: 5px;
}

#ygrp-mlmsg {
font-size: 13px;
font-family: Arial, helvetica,clean, sans-serif;
*font-size: small;
*font: x-small;
}

#ygrp-mlmsg table {
font-size: inherit;
font: 100%;
}

#ygrp-mlmsg select, input, textarea {
font: 99% Arial, Helvetica, clean, sans-serif;
}

#ygrp-mlmsg pre, code {
font:115% monospace;
*font-size:100%;
}

#ygrp-mlmsg * {
line-height: 1.22em;
}

#ygrp-mlmsg #logo {
padding-bottom: 10px;
}


#ygrp-msg p a {
font-family: Verdana;
}

#ygrp-msg p#attach-count span {
color: #1E66AE;
font-weight: 700;
}

#ygrp-reco #reco-head {
color: #ff7900;
font-weight: 700;
}

#ygrp-reco {
margin-bottom: 20px;
padding: 0px;
}

#ygrp-sponsor #ov li a {
font-size: 130%;
text-decoration: none;
}

#ygrp-sponsor #ov li {
font-size: 77%;
list-style-type: square;
padding: 6px 0;
}

#ygrp-sponsor #ov ul {
margin: 0;
padding: 0 0 0 8px;
}

#ygrp-text {
font-family: Georgia;
}

#ygrp-text p {
margin: 0 0 1em 0;
}

#ygrp-text tt {
font-size: 120%;
}

#ygrp-vital ul li:last-child {
border-right: none !important;
}
-->
</style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2016-11-28 10:59:44 UTC
Permalink
Eu não sei se já postei isso, mas de qq forma, com sed tb dá um bom caldo:

$ echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0]
44

Abcs,
Julio
*@juliobash*

*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by ***@yahoo.com.br [shell-script]
echo 4244434353314 | gawk -F "" '{ while (++i<NF) printf $i "+"; print $i }'| bc -l
[]'s
Itamar
Muito boa a tua solução Itamar !!!
Luiz A Monteiro
Rodrigo Cunha rodrigo.root.rj@gmail.com [shell-script]
2016-11-29 15:58:26 UTC
Permalink
srs...consegui resolver o problema com a pipeline do Julio Neves.
echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0] ;

Vou ter que estudar o que esse sed faz, até ontém eu só utilizava o sed
para substituir caracteres, soma eu nunca tinha feito.
Mais um ponto para o Shell.

O script que eu fiz e precisava dessa solução servia para substituir, se
houvessem em um texto, as vogais das 5 primeiras palavras de cada linha por
numeros(a=1,e=2.i=3,o=4,u=5) e somar os numeros das vogais de cada linha.
Meu script ficou meio feio, vou analisa-lo e posto aqui depois, pode ajudar
alguém.
Abs a todos!
Post by 'Julio C. Neves' ***@gmail.com [shell-script]
$ echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0]
44
Abcs,
Julio
*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by ***@yahoo.com.br [shell-script]
echo 4244434353314 | gawk -F "" '{ while (++i<NF) printf $i "+"; print $i }'| bc -l
[]'s
Itamar
Muito boa a tua solução Itamar !!!
Luiz A Monteiro
--
Atenciosamente,
Rodrigo da Silva Cunha
São Gonçalo, RJ - Brasil
itamarnet@yahoo.com.br [shell-script]
2016-11-29 21:54:35 UTC
Permalink
Rodrigo

O sed é fantástico mesmo, mas nesse caso ele não fez conta, apenas armou a conta.

Resolvendo o echo interno temos isso:
echo $[4+2+4+4+4+3+4+3+5+3+3+1+4+0]

que é a mesma coisa que:
echo $((4+2+4+4+4+3+4+3+5+3+3+1+4+0))

É mais um built-in do bash

Já no awk, ele sim pode fazer conta internamente.
Eu tinha dado um exemplo do awk também montando a expressão e jogando pro bc resolver, mas poderia ser assim:
echo 4244434353314 | awk -F "" '{while (i++<=NF) sum+=$i; print sum}'

Só para esclarecer

[]'s
Itamar
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2016-12-01 13:06:26 UTC
Permalink
Rodrigo, vou tentar te explicar:
$ echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0]

O shell tem um interpretador aritmético que vc chama com $((...)), ou
$[...], ou com o cmd let. Neste caso, mandei fazer a operação do que estava
dentro de $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0].

O $(...) dá prioridade de execução para o que está no seu interior, ou seja
antes de qq coisa resolverá echo 4244434353314 | sed -r 's/(.)/\1+/g'.

O sed guarda o texto entre parênteses para uso futuro, só que o cmd s do
sed serve para substituir a expressão regular que esrtá dentro do 1o. para
de barras(/) pelo texto que está no segundo. Como o ponto (.) casa com qq
caractere, o que ele fez foi guardar o 1o. caractere pq está entre
parênteses e substituí-lo por ele mesmo seguido de um mais (\1+) e o g
(global) no final, diz para vc aplicar esta regexp enquanto for possível,
isto é para todos os algarismos do número. Veja o que este sed gera:

$ echo 4244434353314 | sed -r 's/(.)/\1+/g'
4+2+4+4+4+3+4+3+5+3+3+1+4+

O zero colocado ao final é para preencher de forma devida essa equação de
forma a não dar erro de execução na operação aritmética.

$ echo $(echo 4244434353314 | sed -r 's/(.)/\1+/g')0
4+2+4+4+4+3+4+3+5+3+3+1+4+0

Espero que agora vc possa entender.

Na próxima 2a. feira (dia 5/12) começo um curso de Shell, na 4Linux
(SP), com duração de 40 horas onde ensino isso e muito mais. Veja os dados
abaixo da minha assinatura.

Abcs,
Julio
*@juliobash*

*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by Rodrigo Cunha ***@gmail.com [shell-script]
srs...consegui resolver o problema com a pipeline do Julio Neves.
echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0] ;
Vou ter que estudar o que esse sed faz, até ontém eu só utilizava o sed
para substituir caracteres, soma eu nunca tinha feito.
Mais um ponto para o Shell.
O script que eu fiz e precisava dessa solução servia para substituir, se
houvessem em um texto, as vogais das 5 primeiras palavras de cada linha por
numeros(a=1,e=2.i=3,o=4,u=5) e somar os numeros das vogais de cada linha.
Meu script ficou meio feio, vou analisa-lo e posto aqui depois, pode
ajudar alguém.
Abs a todos!
Post by 'Julio C. Neves' ***@gmail.com [shell-script]
$ echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0]
44
Abcs,
Julio
*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by ***@yahoo.com.br [shell-script]
echo 4244434353314 | gawk -F "" '{ while (++i<NF) printf $i "+"; print $i }'| bc -l
[]'s
Itamar
Muito boa a tua solução Itamar !!!
Luiz A Monteiro
--
Atenciosamente,
Rodrigo da Silva Cunha
São Gonçalo, RJ - Brasil
Fernando Mercês nandu88@gmail.com [shell-script]
2016-12-01 14:24:27 UTC
Permalink
Ah, se o bc tivesse uma opção pra concatenar um zero no final da entrada
que receber hein... Já pensou que lindo?

$ echo 4244434353314 | sed 's/./&+/g' | bc --add-trailing-zero
44




Att,

@MercesFernando
mentebinaria.com.br <http://www.mentebinaria.com.br>
---------------------------
Post by 'Julio C. Neves' ***@gmail.com [shell-script]
$ echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0]
O shell tem um interpretador aritmético que vc chama com $((...)), ou
$[...], ou com o cmd let. Neste caso, mandei fazer a operação do que estava
dentro de $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0].
O $(...) dá prioridade de execução para o que está no seu interior, ou
seja antes de qq coisa resolverá echo 4244434353314 | sed -r 's/(.)/\1+/g'.
O sed guarda o texto entre parênteses para uso futuro, só que o cmd s do
sed serve para substituir a expressão regular que esrtá dentro do 1o. para
de barras(/) pelo texto que está no segundo. Como o ponto (.) casa com qq
caractere, o que ele fez foi guardar o 1o. caractere pq está entre
parênteses e substituí-lo por ele mesmo seguido de um mais (\1+) e o g
(global) no final, diz para vc aplicar esta regexp enquanto for possível,
$ echo 4244434353314 | sed -r 's/(.)/\1+/g'
4+2+4+4+4+3+4+3+5+3+3+1+4+
O zero colocado ao final é para preencher de forma devida essa equação de
forma a não dar erro de execução na operação aritmética.
$ echo $(echo 4244434353314 | sed -r 's/(.)/\1+/g')0
4+2+4+4+4+3+4+3+5+3+3+1+4+0
Espero que agora vc possa entender.
Na próxima 2a. feira (dia 5/12) começo um curso de Shell, na 4Linux
(SP), com duração de 40 horas onde ensino isso e muito mais. Veja os dados
abaixo da minha assinatura.
Abcs,
Julio
*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by Rodrigo Cunha ***@gmail.com [shell-script]
srs...consegui resolver o problema com a pipeline do Julio Neves.
echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0] ;
Vou ter que estudar o que esse sed faz, até ontém eu só utilizava o sed
para substituir caracteres, soma eu nunca tinha feito.
Mais um ponto para o Shell.
O script que eu fiz e precisava dessa solução servia para substituir, se
houvessem em um texto, as vogais das 5 primeiras palavras de cada linha por
numeros(a=1,e=2.i=3,o=4,u=5) e somar os numeros das vogais de cada linha.
Meu script ficou meio feio, vou analisa-lo e posto aqui depois, pode
ajudar alguém.
Abs a todos!
Post by 'Julio C. Neves' ***@gmail.com [shell-script]
$ echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0]
44
Abcs,
Julio
*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by ***@yahoo.com.br [shell-script]
echo 4244434353314 | gawk -F "" '{ while (++i<NF) printf $i "+"; print $i }'| bc -l
[]'s
Itamar
Muito boa a tua solução Itamar !!!
Luiz A Monteiro
--
Atenciosamente,
Rodrigo da Silva Cunha
São Gonçalo, RJ - Brasil
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2016-12-01 14:55:12 UTC
Permalink
Grande Fernando, o bc é de código está aberto e como vc é um dos melhores,
que conheço, em C, é a pessoa indicada para fazer isso. Basta neste sábado,
não ir a praia, nem beber chope e escrever a implementação desta opção.
Aproveita a faz o mesmo nos intrínsecos let, $((...)) e $[...].

Um abraço do seu "Muy Amigo"
Julio ;)


Abcs,
Julio
*@juliobash*

*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by Fernando Mercês ***@gmail.com [shell-script]
Ah, se o bc tivesse uma opção pra concatenar um zero no final da entrada
que receber hein... Já pensou que lindo?
$ echo 4244434353314 | sed 's/./&+/g' | bc --add-trailing-zero
44
Att,
@MercesFernando
mentebinaria.com.br <http://www.mentebinaria.com.br>
---------------------------
Post by 'Julio C. Neves' ***@gmail.com [shell-script]
$ echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0]
O shell tem um interpretador aritmético que vc chama com $((...)), ou
$[...], ou com o cmd let. Neste caso, mandei fazer a operação do que estava
dentro de $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0].
O $(...) dá prioridade de execução para o que está no seu interior, ou
seja antes de qq coisa resolverá echo 4244434353314 | sed -r 's/(.)/\1+/g'.
O sed guarda o texto entre parênteses para uso futuro, só que o cmd s do
sed serve para substituir a expressão regular que esrtá dentro do 1o. para
de barras(/) pelo texto que está no segundo. Como o ponto (.) casa com qq
caractere, o que ele fez foi guardar o 1o. caractere pq está entre
parênteses e substituí-lo por ele mesmo seguido de um mais (\1+) e o g
(global) no final, diz para vc aplicar esta regexp enquanto for possível,
$ echo 4244434353314 | sed -r 's/(.)/\1+/g'
4+2+4+4+4+3+4+3+5+3+3+1+4+
O zero colocado ao final é para preencher de forma devida essa equação de
forma a não dar erro de execução na operação aritmética.
$ echo $(echo 4244434353314 | sed -r 's/(.)/\1+/g')0
4+2+4+4+4+3+4+3+5+3+3+1+4+0
Espero que agora vc possa entender.
Na próxima 2a. feira (dia 5/12) começo um curso de Shell, na 4Linux
(SP), com duração de 40 horas onde ensino isso e muito mais. Veja os dados
abaixo da minha assinatura.
Abcs,
Julio
*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by Rodrigo Cunha ***@gmail.com [shell-script]
srs...consegui resolver o problema com a pipeline do Julio Neves.
echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0] ;
Vou ter que estudar o que esse sed faz, até ontém eu só utilizava o sed
para substituir caracteres, soma eu nunca tinha feito.
Mais um ponto para o Shell.
O script que eu fiz e precisava dessa solução servia para substituir, se
houvessem em um texto, as vogais das 5 primeiras palavras de cada linha por
numeros(a=1,e=2.i=3,o=4,u=5) e somar os numeros das vogais de cada linha.
Meu script ficou meio feio, vou analisa-lo e posto aqui depois, pode
ajudar alguém.
Abs a todos!
Post by 'Julio C. Neves' ***@gmail.com [shell-script]
$ echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0]
44
Abcs,
Julio
*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by ***@yahoo.com.br [shell-script]
echo 4244434353314 | gawk -F "" '{ while (++i<NF) printf $i "+"; print $i }'| bc -l
[]'s
Itamar
Muito boa a tua solução Itamar !!!
Luiz A Monteiro
--
Atenciosamente,
Rodrigo da Silva Cunha
São Gonçalo, RJ - Brasil
Gmail t.collons@gmail.com [shell-script]
2016-12-01 20:27:22 UTC
Permalink
Boa tarde


Caro Fernando, adicionar à sua solução, não é necessário modificar bc

echo 4244434353314 | sed -e 's/./&+/g;s/[+]*$//' | bc

44


Salutacións

Pere

***@gmail.com <mailto:***@gmail.com>



<http://www.imatge.com/>

------------------------------------

AVIS LEGAL

Nota de confidencialitat: Aquest missatge podria contenir missatges
d'empresa i altre informació confidencial tutelada per les lleis de
Europea i altres estats, Si VostÚ el rep per error o sense ser una de
les persones esmenades a la capçalera, haurà de destruir-lo sense
copiar-lo ni revelar-l'ho o qualsevol altre acció relacionada amb el
contingut del missatge i notificar-ho per correu electrònic a l'emissor
del missatge.

Les persones o entitats que incompleixin els deures de confidencialitat
podran ésser perseguides davant dels Tribunals de Justícia sota l'empar
de la legislació civil, penal i administrativa nacional i internacional.

Gracies per la seva cooperació.

------------------------------------

LEGAL NOTICE

Confidentiality notice: This mail may include business and other
confidential information protected under the laws of and other
territories. if you are not one of the intended recipients of the
message, you are legally obliged to delete the message content.
Furthermore, you are kindly requested to report immediately the incident
to the sender.

Breach of confidentiality duties is a serious criminal offence in and
other territories. Offenders shall be legally prosecuted worldwide.

Thank you for your cooperation.
Post by Fernando Mercês ***@gmail.com [shell-script]
Ah, se o bc tivesse uma opção pra concatenar um zero no final da
entrada que receber hein... Já pensou que lindo?
$ echo 4244434353314 | sed 's/./&+/g' | bc --add-trailing-zero
44
Att,
@MercesFernando
mentebinaria.com.br <http://www.mentebinaria.com.br>
---------------------------
$ echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0]
O shell tem um interpretador aritmético que vc chama com $((...)),
ou $[...], ou com o cmd let. Neste caso, mandei fazer a operação
do que estava dentro de $[$(echo 4244434353314 | sed -r
's/(.)/\1+/g')0].
O $(...) dá prioridade de execução para o que está no seu
interior, ou seja antes de qq coisa resolverá echo 4244434353314 |
sed -r 's/(.)/\1+/g'.
O sed guarda o texto entre parênteses para uso futuro, só que o
cmd s do sed serve para substituir a expressão regular que esrtá
dentro do 1o. para de barras(/) pelo texto que está no segundo.
Como o ponto (.) casa com qq caractere, o que ele fez foi guardar
o 1o. caractere pq está entre parênteses e substituí-lo por ele
mesmo seguido de um mais (\1+) e o g (global) no final, diz para
vc aplicar esta regexp enquanto for possível, isto é para todos os
$ echo 4244434353314 | sed -r 's/(.)/\1+/g'
4+2+4+4+4+3+4+3+5+3+3+1+4+
O zero colocado ao final é para preencher de forma devida essa
equação de forma a não dar erro de execução na operação aritmética.
$ echo $(echo 4244434353314 | sed -r 's/(.)/\1+/g')0
4+2+4+4+4+3+4+3+5+3+3+1+4+0
Espero que agora vc possa entender.
Na próxima 2a. feira (dia 5/12) começo um curso de Shell, na
4Linux (SP), com duração de 40 horas onde ensino isso e muito
mais. Veja os dados abaixo da minha assinatura.
Abcs,
Julio
*
Próximos cursos de Shell*
*Cidade LocalPeríodo*
*
​
**São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script>05
*-09/12*
***
Dou treinamento de /Shell/em qualquer cidade.
Em 29 de novembro de 2016 13:58, Rodrigo Cunha
srs...consegui resolver o problema com a pipeline do Julio Neves.
echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0] ;
Vou ter que estudar o que esse sed faz, até ontém eu só
utilizava o sed para substituir caracteres, soma eu nunca
tinha feito.
Mais um ponto para o Shell.
O script que eu fiz e precisava dessa solução servia para
substituir, se houvessem em um texto, as vogais das 5
primeiras palavras de cada linha por
numeros(a=1,e=2.i=3,o=4,u=5) e somar os numeros das vogais de cada linha.
Meu script ficou meio feio, vou analisa-lo e posto aqui
depois, pode ajudar alguém.
Abs a todos!
Em 28 de novembro de 2016 08:59, 'Julio C. Neves'
Eu não sei se já postei isso, mas de qq forma, com sed tb
$ echo $[$(echo 4244434353314 | sed -r 's/(.)/\1+/g')0]
44
Abcs,
Julio
*
Próximos cursos de Shell*
*Cidade LocalPeríodo*
*
​
**São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script>05
*-09/12*
***
Dou treinamento de /Shell/em qualquer cidade.
Para mais detalhes, me mande um e-mail
Em 27 de novembro de 2016 21:32, Luiz Alberto
Post by ***@yahoo.com.br [shell-script]
Na mesma linha da solução do Luiz Alberto, poderia
echo 4244434353314 | gawk -F "" '{ while (++i<NF)
printf $i "+"; print $i }'| bc -l
[]'s
Itamar
Muito boa a tua solução Itamar !!!
Luiz A Monteiro
--
Atenciosamente,
Rodrigo da Silva Cunha
São Gonçalo, RJ - Brasil
Loading...