Re: Suggestion to add debug mode to sed

"Daniel Goldman [email protected] [sed-users]" <[email protected]> Mon, 30 Sep 2019 20:36:56 -0700
Newsgroups gmane.editors.sed.user
Message-ID <[email protected]>
--M-8UCl2o0-kuaOxt1dTRqrMysn3yKlqhkz9xiBj
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi Aurelio,

That is a really helpful post.

sedsed is a very useful program. I ran sedsed many times to help make 
sense of sed operation. You deserve a lot of credit.

I was not aware that the gnu sed maintainer had added --debug option. I 
had even forgotten my request. :) Thank you, gnu sed maintainers, past 
and present, for making such powerful and reliable software. Now that 
gnu sed has --debug option, that will make it even easier for me (and 
others) to figure out what sed is doing.

I use sed a LOT. I find it very useful, along with other tools I would 
recommend: bash, grep, vim, cut, head, tail, sort, uniq, tr, mc, find, 
rsync, many others. And of course regular expressions.

I feel sorry for a developer who does not have sed (or something 
equivalent) in their toolbox. Most of the time, I use sed in simple 
ways, to easily and reliably edit large numbers of files and save tons 
of time. But sed can be hard to follow with more complex scripts. So 
sedsed or the --debug option are invaluable at times.

That's really interesting how you wrote sedsed, how you inserted extra 
sed commands and then executed the script with normal sed. Very clever!

Something else I noticed on aurelio.net some years ago was css sandbox. 
I played around with it a lot. I liked the design and functionality. I 
certainly learned from it.

Is there anything else you have done, and that you particularly like, 
that you might recommend to me and other group members?

Thanks,
Daniel

On 9/30/2019 2:19 PM, [email protected] [sed-users] wrote:
> Hi Daniel,
>
> After almost three years of your initial request, the --debug option was added to GNU sed in version 4.6 (2018-12-19) \o/
>
> I have just found out about it, and since nobody else talked about it here, I thought it would be worth it to resurrect this old thread.
>
> Manual citation:
> https://www.gnu.org/software/sed/manual/sed.html#index-_002d_002ddebug
>
> Initial commit (contains an example):
> http://git.savannah.gnu.org/cgit/sed.git/commit/?id=3ac640c
>
> I liked the result, it is showing more information than sedsed (such as the matched regex groups) and clearly states when a new line is read from the input. Very useful! It also opted to only show the contents of PATTERN or HOLD spaces when a command that can change them is executed (sedsed by default always shows both after every command).
>
> BTW, at that time you've asked how sedsed worked. It's a Python script that reads a sed script and inserts some extra sed commands on it to show the contents of PATTERN and HOLD spaces. This "annotated" sed script is then executed by the normal system sed. So sedsed is not a sed implementation, it just adds the "print" commands a human would manually add when debugging the script. Now with `gsed --debug` I have to think if sedsed still has a reason to exist :)
>
> --
> Aurelio Jargas
>
> ------------------------------------
> Posted by: [email protected]
> ------------------------------------
>

--M-8UCl2o0-kuaOxt1dTRqrMysn3yKlqhkz9xiBj
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit




<!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>Hi Aurelio,<br>
<br>
That is a really helpful post.<br>
<br>
sedsed is a very useful program. I ran sedsed many times to help make <br>
sense of sed operation. You deserve a lot of credit.<br>
<br>
I was not aware that the gnu sed maintainer had added --debug option. I <br>
had even forgotten my request. :) Thank you, gnu sed maintainers, past <br>
and present, for making such powerful and reliable software. Now that <br>
gnu sed has --debug option, that will make it even easier for me (and <br>
others) to figure out what sed is doing.<br>
<br>
I use sed a LOT. I find it very useful, along with other tools I would <br>
recommend: bash, grep, vim, cut, head, tail, sort, uniq, tr, mc, find, <br>
rsync, many others. And of course regular expressions.<br>
<br>
I feel sorry for a developer who does not have sed (or something <br>
equivalent) in their toolbox. Most of the time, I use sed in simple <br>
ways, to easily and reliably edit large numbers of files and save tons <br>
of time. But sed can be hard to follow with more complex scripts. So <br>
sedsed or the --debug option are invaluable at times.<br>
<br>
That&#39;s really interesting how you wrote sedsed, how you inserted extra <br>
sed commands and then executed the script with normal sed. Very clever!<br>
<br>
Something else I noticed on aurelio.net some years ago was css sandbox. <br>
I played around with it a lot. I liked the design and functionality. I <br>
certainly learned from it.<br>
<br>
Is there anything else you have done, and that you particularly like, <br>
that you might recommend to me and other group members?<br>
<br>
Thanks,<br>
Daniel<br>
<br>
On 9/30/2019 2:19 PM, [email protected] [sed-users] wrote:<br>
&gt; Hi Daniel,<br>
&gt;<br>
&gt; After almost three years of your initial request, the --debug option was added to GNU sed in version 4.6 (2018-12-19) &#92;o/<br>
&gt;<br>
&gt; I have just found out about it, and since nobody else talked about it here, I thought it would be worth it to resurrect this old thread.<br>
&gt;<br>
&gt; Manual citation:<br>
&gt; https://www.gnu.org/software/sed/manual/sed.html#index-_002d_002ddebug<br>
&gt;<br>
&gt; Initial commit (contains an example):<br>
&gt; http://git.savannah.gnu.org/cgit/sed.git/commit/?id=3ac640c<br>
&gt;<br>
&gt; I liked the result, it is showing more information than sedsed (such as the matched regex groups) and clearly states when a new line is read from the input. Very useful! It also opted to only show the contents of PATTERN or HOLD spaces when a command that can change them is executed (sedsed by default always shows both after every command).<br>
&gt;<br>
&gt; BTW, at that time you&#39;ve asked how sedsed worked. It&#39;s a Python script that reads a sed script and inserts some extra sed commands on it to show the contents of PATTERN and HOLD spaces. This &quot;annotated&quot; sed script is then executed by the normal system sed. So sedsed is not a sed implementation, it just adds the &quot;print&quot; commands a human would manually add when debugging the script. Now with `gsed --debug` I have to think if sedsed still has a reason to exist :)<br>
&gt;<br>
&gt; --<br>
&gt; Aurelio Jargas<br>
&gt;<br>
&gt; ------------------------------------<br>
&gt; Posted by: [email protected]<br>
&gt; ------------------------------------<br>
&gt;<br>
</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;">
        Posted by: Daniel Goldman &lt;[email protected]&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://groups.yahoo.com/neo/groups/sed-users/conversations/messages/9999;_ylc=X3oDMTJwNHN1M3Y1BF9TAzk3MzU5NzE0BGdycElkAzI0ODk2MzkEZ3Jwc3BJZAMxNzA5MzM1MDAyBG1zZ0lkAzk5OTkEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxNTY5OTAxMDU5?act=reply&messageNum=9999">Reply via web post</a>
                      </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
            <a href="mailto:[email protected]?subject=Re%3A%20Suggestion%20to%20add%20debug%20mode%20to%20sed" style="text-decoration: none; color: #2D50FD;">
               Reply to sender            </a>
          </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;">
            <a href="mailto:[email protected]?subject=Re%3A%20Suggestion%20to%20add%20debug%20mode%20to%20sed" style="text-decoration: none; color: #2D50FD">
              Reply to group            </a>
          </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
            <a href="https://groups.yahoo.com/neo/groups/sed-users/conversations/newtopic;_ylc=X3oDMTJlazVxMmVnBF9TAzk3MzU5NzE0BGdycElkAzI0ODk2MzkEZ3Jwc3BJZAMxNzA5MzM1MDAyBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTU2OTkwMTA1OQ--" style="text-decoration: none; color: #2D50FD">Start a New Topic</a>
          </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;color: #2D50FD;" >
                            <a href="https://groups.yahoo.com/neo/groups/sed-users/conversations/topics/9679;_ylc=X3oDMTM0bWNkZW1rBF9TAzk3MzU5NzE0BGdycElkAzI0ODk2MzkEZ3Jwc3BJZAMxNzA5MzM1MDAyBG1zZ0lkAzk5OTkEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxNTY5OTAxMDU5BHRwY0lkAzk2Nzk-" style="text-decoration: none; color: #2D50FD;">Messages in this topic</a>
                (5)
                      </td>
        </tr>
      </tbody>
    </table>

        

<!------- Start Nav Bar ------>


    <div id="ygrp-grfd" style="font-family: Verdana; font-size: 12px; padding: 15px 0;">
      
<!-- |**|begin egp html banner|**| -->

      -- <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://groups.yahoo.com/neo/groups/sed-users/info;_ylc=X3oDMTJlNHQ2a2NlBF9TAzk3MzU5NzE0BGdycElkAzI0ODk2MzkEZ3Jwc3BJZAMxNzA5MzM1MDAyBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTU2OTkwMTA1OQ--" style="text-decoration: none;">Visit Your Group</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://groups.yahoo.com/neo;_ylc=X3oDMTJkNWZpYjdtBF9TAzk3MzU5NzE0BGdycElkAzI0ODk2MzkEZ3Jwc3BJZAMxNzA5MzM1MDAyBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNTY5OTAxMDU5" style="float: left;"><img src="https://s.yimg.com/ru/0.9.12/min/css/yahoo_en-US_f_pw_101x21.png" height="21" width="101" alt="Yahoo! Groups" style="border: 0;"/></a>
  <div style="color: #747575; float: right;"> &bull; <a href="https://info.yahoo.com/privacy/us/yahoo/groups/details.html" style="text-decoration: none;">Privacy</a> &bull; <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> &bull; <a href="https://info.yahoo.com/legal/us/yahoo/utos/terms/" style="text-decoration: none;">Terms of Use</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=97359714/grpId=2489639/grpspId=1709335002/msgId=9999/stime=1569901059" 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 -->


--M-8UCl2o0-kuaOxt1dTRqrMysn3yKlqhkz9xiBj--