Loading ...
Sorry, an error occurred while loading the content.

Search Patterns

Expand Messages
  • John Lusby
    Hello, I m currently trying to read a list of files from a make output and push them into ctags but I m having trouble with the substitute. I ve been using vim
    Message 1 of 5 , Feb 26, 2013
    • 0 Attachment
      Hello,

      I'm currently trying to read a list of files from a make output and push them into ctags but I'm having trouble with the substitute. I've been using vim to try to get the pattern right but I cant seem to figure it out.

      I'm currently at the point where my command looks like

      make telosb verbose 2>&1 >/dev/null | grep 'preprocessing' | sed -e 's/preprocessing//' -e 's/ //' >>somefilenames2.txt

      but the lines in somefilenames look all garbled

      Heres a snippet

      [01;31m [K [m [K/usr/lib/ncc/deputy_nodeputy.h
      [01;31m [K [m [K/usr/lib/ncc/nesc_nx.h
      [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/system/tos.h
      [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/system/TinySchedulerC.nc
      [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/interfaces/Scheduler.nc

      I tried using a pattern like :%s/^*\/// to replace it but that just said no pattern ^*\/ found. Does anyone know what I'm doing wrong?

      Thanks for the help,

      -John

      --
      --
      You received this message from the "vim_use" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
       
      ---
      You received this message because you are subscribed to the Google Groups "vim_use" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
       
       
    • Christian Brabandt
      ... Looks like your make program outputs terminal sequences to e.g. display colors? Try explicitly setting your terminal to somthing dumb for make. It
      Message 2 of 5 , Feb 27, 2013
      • 0 Attachment
        On Wed, February 27, 2013 06:37, John Lusby wrote:
        > Hello,
        >
        > I'm currently trying to read a list of files from a make output and push
        > them into ctags but I'm having trouble with the substitute. I've been
        > using
        > vim to try to get the pattern right but I cant seem to figure it out.
        >
        > I'm currently at the point where my command looks like
        >
        > make telosb verbose 2>&1 >/dev/null | grep 'preprocessing' | sed -e
        > 's/preprocessing//' -e 's/ //' >>somefilenames2.txt
        >
        > but the lines in somefilenames look all garbled
        >
        > Heres a snippet
        >
        > [01;31m [K [m [K/usr/lib/ncc/deputy_nodeputy.h
        > [01;31m [K [m [K/usr/lib/ncc/nesc_nx.h
        > [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/system/tos.h
        > [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/system/TinySchedulerC.nc
        > [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/interfaces/Scheduler.nc
        >
        > I tried using a pattern like :%s/^*\/// to replace it but that just said
        > no
        > pattern ^*\/ found. Does anyone know what I'm doing wrong?
        >
        > Thanks for the help,

        Looks like your make program outputs terminal sequences to e.g. display
        colors? Try explicitly setting your terminal to somthing dumb for make.
        It shouldn't then output those chars:
        TERM=vt100 make ...

        Your pattern doesn't look right btw. I think what you want to search for
        is :%s/^[^/]*//

        Your pattern ^*\/ is actually looking for line start followed by a '*'
        followed by a slash, which is obviously not what you need.

        regards,
        Christian

        --
        --
        You received this message from the "vim_use" maillist.
        Do not top-post! Type your reply below the text you are replying to.
        For more information, visit http://www.vim.org/maillist.php

        ---
        You received this message because you are subscribed to the Google Groups "vim_use" group.
        To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
        For more options, visit https://groups.google.com/groups/opt_out.
      • John Lusby
        That worked almost perfectly. The only problem with this one is that the files that are in the working directory aren t proceeded by a slash. I gather that the
        Message 3 of 5 , Feb 27, 2013
        • 0 Attachment
          That worked almost perfectly. The only problem with this one is that the files that are in the working directory aren't proceeded by a slash. I gather that the pattern you gave is for ^ followed by any number of non / characters. I guess I got confused and thought that * was itself a wild card. 

          Thank you very much Christian. I've figured out what I needed and more. With your start and a bit of googling the right answer ended up being :%s/^\S*\s//. Another source of confusion had been that I didn't realize >> was append so I was sometimes opening files and not realizing I was seeing outputs from different versions of my command. The proper output from just the grep with no modification was just

          [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/chips/msp430/McuSleepC.nc
          [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/interfaces/McuPowerState.nc
          [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/interfaces/McuPowerOverride.nc
          [01;31m [Kpreprocessing [m [K gridEyeAppC.nc
          [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/system/MainC.nc
          [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/interfaces/Boot.nc
          [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/interfaces/Init.nc

          The pattern you gave me worked great for every pattern except the ones in the current directory because they didnt have a /, but thats my fault because I linked a portion of the list that didn't include that. Thank you again

          -John


          On Wed, Feb 27, 2013 at 12:08 AM, Christian Brabandt <cblists@...> wrote:
          On Wed, February 27, 2013 06:37, John Lusby wrote:
          > Hello,
          >
          > I'm currently trying to read a list of files from a make output and push
          > them into ctags but I'm having trouble with the substitute. I've been
          > using
          > vim to try to get the pattern right but I cant seem to figure it out.
          >
          > I'm currently at the point where my command looks like
          >
          > make telosb verbose 2>&1 >/dev/null | grep 'preprocessing' | sed -e
          > 's/preprocessing//' -e 's/ //' >>somefilenames2.txt
          >
          > but the lines in somefilenames look all garbled
          >
          > Heres a snippet
          >
          > [01;31m [K [m [K/usr/lib/ncc/deputy_nodeputy.h
          >  [01;31m [K [m [K/usr/lib/ncc/nesc_nx.h
          > [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/system/tos.h
          > [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/system/TinySchedulerC.nc
          > [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/interfaces/Scheduler.nc
          >
          > I tried using a pattern like :%s/^*\/// to replace it but that just said
          > no
          > pattern ^*\/ found. Does anyone know what I'm doing wrong?
          >
          > Thanks for the help,

          Looks like your make program outputs terminal sequences to e.g. display
          colors? Try explicitly setting your terminal to somthing dumb for make.
          It shouldn't then output those chars:
          TERM=vt100 make ...

          Your pattern doesn't look right btw. I think what you want to search for
          is :%s/^[^/]*//

          Your pattern ^*\/ is actually looking for line start followed by a '*'
          followed by a slash, which is obviously not what you need.

          regards,
          Christian

          --
          --
          You received this message from the "vim_use" maillist.
          Do not top-post! Type your reply below the text you are replying to.
          For more information, visit http://www.vim.org/maillist.php

          ---
          You received this message because you are subscribed to the Google Groups "vim_use" group.
          To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
          For more options, visit https://groups.google.com/groups/opt_out.

          --
          --
          You received this message from the "vim_use" maillist.
          Do not top-post! Type your reply below the text you are replying to.
          For more information, visit http://www.vim.org/maillist.php
           
          ---
          You received this message because you are subscribed to the Google Groups "vim_use" group.
          To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
          For more options, visit https://groups.google.com/groups/opt_out.
           
           
        • Frédéric Heulin
          ... As Christian suggested, removing the colors escaped sequences from the source may be simplier. For grep, just append : cmd | grep pattern file --
          Message 4 of 5 , Feb 28, 2013
          • 0 Attachment



            John Lusby <jlusby42@...> a écrit :
            That worked almost perfectly. The only problem with this one is that the files that are in the working directory aren't proceeded by a slash. I gather that the pattern you gave is for ^ followed by any number of non / characters. I guess I got confused and thought that * was itself a wild card. 

            Thank you very much Christian. I've figured out what I needed and more. With your start and a bit of googling the right answer ended up being :%s/^\S*\s//. Another source of confusion had been that I didn't realize >> was append so I was sometimes opening files and not realizing I was seeing outputs from different versions of my command. The proper output from just the grep with no modification was just

            [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/chips/msp430/McuSleepC.nc
            [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/interfaces/McuPowerState.nc
            [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/interfaces/McuPowerOverride.nc
            [01;31m [Kpreprocessing [m [K gridEyeAppC.nc
            [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/system/MainC.nc
            [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/interfaces/Boot.nc
            [01;31m [Kpreprocessing [m [K /home/john/local/tinyos-2.x/tos/interfaces/Init.nc

            The pattern you gave me worked great for every pattern except the ones in the current directory because they didnt have a /, but thats my fault because I linked a portion of the list that didn't include that. Thank you again

            -John


            On Wed, Feb 27, 2013 at 12:08 AM, Christian Brabandt <cblists@...> wrote:
            On Wed, February 27, 2013 06:37, John Lusby wrote:
            > Hello,
            >
            > I'm currently trying to read a list of files from a make output and push
            > them into ctags but I'm having trouble with the substitute. I've been
            > using
            > vim to try to get the pattern right but I cant seem to figure it out.
            >
            > I'm currently at the point where my command looks like
            >
            > make telosb verbose 2>&1 >/dev/null | grep 'preprocessing' | sed -e
            > 's/preprocessing//' -e 's/ //' >>somefilenames2.txt
            >
            > but the lines in somefilenames look all garbled
            >
            > Heres a snippet
            >
            > [01;31m [K [m [K/usr/lib/ncc/deputy_nodeputy.h
            >  [01;31m [K [m [K/usr/lib/ncc/nesc_nx.h
            > [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/system/tos.h
            > [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/system/TinySchedulerC.nc
            > [01;31m [K [m [K/home/john/local/tinyos-2.x/tos/interfaces/Scheduler.nc
            >
            > I tried using a pattern like :%s/^*\/// to replace it but that just said
            > no
            > pattern ^*\/ found. Does anyone know what I'm doing wrong?
            >
            > Thanks for the help,

            Looks like your make program outputs terminal sequences to e.g. display
            colors? Try explicitly setting your terminal to somthing dumb for make.
            It shouldn't then output those chars:
            TERM=vt100 make ...

            Your pattern doesn't look right btw. I think what you want to search for
            is :%s/^[^/]*//

            Your pattern ^*\/ is actually looking for line start followed by a '*'
            followed by a slash, which is obviously not what you need.

            regards,
            Christian

            --
            --
            You received this message from the "vim_use" maillist.
            Do not top-post! Type your reply below the text you are replying to.
            For more information, visit http://www.vim.org/maillist.php

            ---
            You received this message because you are subscribed to the Google Groups "vim_use" group.
            To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
            For more options, visit https://groups.google.com/groups/opt_out.


            As Christian suggested, removing the colors escaped sequences from the source may be simplier. For grep, just append \ : cmd | \grep pattern > file

            --
            Envoyé de mon téléphone Android avec K-9 Mail. Excusez la brièveté.

            --
            --
            You received this message from the "vim_use" maillist.
            Do not top-post! Type your reply below the text you are replying to.
            For more information, visit http://www.vim.org/maillist.php
             
            ---
            You received this message because you are subscribed to the Google Groups "vim_use" group.
            To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
            For more options, visit https://groups.google.com/groups/opt_out.
             
             
          • Christian Brabandt
            Hi Frédéric! ... It might be easier to set the grep alias apropriately. It sounds, the grep alias appends the --color=always which in this case causes the
            Message 5 of 5 , Feb 28, 2013
            • 0 Attachment
              Hi Frédéric!

              On Do, 28 Feb 2013, Frédéric Heulin wrote:

              > As Christian suggested, removing the colors escaped sequences from the source may be simplier. For grep, just append \ : cmd | \grep pattern > file

              It might be easier to set the grep alias apropriately. It sounds, the
              grep alias appends the --color=always which in this case causes the
              problem. You probably want rather --color=auto so that grep does not
              color output, that is not displayed on a terminal.

              regards,
              Christian
              --
              Mit der Liebelei ist es wie mit der Elektrizität: erst Starkstrom,
              dann Schwachstrom, zuletzt Wechselstrom.
              -- Jaques Tati

              --
              --
              You received this message from the "vim_use" maillist.
              Do not top-post! Type your reply below the text you are replying to.
              For more information, visit http://www.vim.org/maillist.php

              ---
              You received this message because you are subscribed to the Google Groups "vim_use" group.
              To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
              For more options, visit https://groups.google.com/groups/opt_out.
            Your message has been successfully submitted and would be delivered to recipients shortly.