Sunday, October 27, 2013

Re: How to manipulate shell command output

On Saturday, October 26, 2013 7:23:22 PM UTC-4, Tim Chase wrote:
> On 2013-10-26 13:30, AlmostSurely wrote:
>
> > I've been trying to capture a portion of output from a shell
>
> > command. Suppose I need the first line of output from,
>
> >
>
> > :!g++ --version
>
> >
>
> > Is it possible for me to execute the above, storing only the first
>
> > line of output in a string variable?
>
>
>
> Depending on the context you want it, you can either read the output
>
> of the command into the current buffer with
>
>
>
> :r !g++ --version
>
>
>
> or you can put it in a variable to be manipulated:
>
>
>
> :let my_var=system('g++ --version')
>
>
>
> Note that this will give you the complete output, so you'd have to
>
> throw away the bits you don't want.
>
>
>
> -tim

Hi Tim, thanks for the response. This seems to work and do what I need,

function! Test2()
:!clear
:let str1 = system('g++ --version')
:let str2 = split(str1, "\n")
:execute "!echo " . shellescape(str2[0])
endfunction

--
--
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@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments: