Thursday, September 1, 2011

Re: Search and write

Ok, I've changed to:
:g/[-0-9]\{13,17\}/t.|s/^[0-9]\+//g|w! >> my.txt | d

I still not just get the 13 to 17 digits strings. You say it will copy all the lines that starts with digits. I don't want the whole line just the digit string, not what follows with exception if it's another 13 to 17 digits string.

Lars Iselid




On Thu, Sep 1, 2011 at 11:40 AM, Marcin Szamotulski <mszamot@gmail.com> wrote:
On 08:10 Thu 01 Sep     , Lars Iselid wrote:
> Thanks for help!
>
> I want to write the digits and actually my full regex in vim is:
> /[-0-9]\{13,17\}
>
> I want numbers with 13 to 17 digits even if they have hyphens between the
> digits. Should then be something like:
>
> :g/[-0-9]\{13,17\}/t.|s/[^0-9]\+//g|w! >> my.txt | d
You can try this:
:g/[-0-9]\{13,17\}/t.|s/^[0-9]\+//g|w! >> my.txt | d
(it will copy all the lines which starts with more than one digit).
I think you had a small typo in your pattern. The meaning of ^ inside [] is to
not match any of the following characters, that's why your pattern matched the
complement of what you expect.

Best,
Marcin
>
> I tried this but I get the whole text not just numerical digits (with
> hyphens) in a new file.
>
> Lars
>
>
>
>
> On Wed, Aug 31, 2011 at 3:44 PM, Tim Chase <vim@tim.thechases.com> wrote:
>
> > On 08/31/11 07:23, Lars Iselid wrote:
> >
> >> If you have a search statement something like this:
> >>
> >> /[0-9]
> >>
> >> And want to write :w the matching content to a file. How to do? I've
> >> seen examples similar to this:
> >>
> >> /[0-9] . w>>  my.txt
> >>
> >
> > Depends on whether you want to write just the match, or the entire line.
> >  If you want the entire line containing the match(es), it's pretty easy:
> >
> >  g/[0-9]/w>> my.txt
> >
> > If you just want to write those digits to the file, it's more complex.
> >  Something like:
> >
> >  g/[0-9]/t.|s/[^0-9]\+//g|w! >> my.txt | d
> >
> > which copies each matching line to the line below, deletes all the
> > non-digits, writes/appends the temp-line to the file, and then deletes the
> > temp-line.
> >
> > -tim
> >
> >
> >
>
> --
> 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 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 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

No comments:

Post a Comment