On Tue, 28 Sep 2010, Ole Tange wrote:
> find ./ -name *.html | xargs grep -l rapp_document
>
> ./file1
> ./file2
> ./file3
>
> How to open the filelist ? like "vim file1 file2 file3"
If you have GNU Parallel http://www.gnu.org/software/parallel/
find . -type f | parallel -uXj1 vim
GNU Parallel is generally useful for other tasks. Watch the intro video:
http://www.youtube.com/watch?v=OpaiGYxkSuQ
/Ole
[My too-wordy comments]
In general, parallel seems like a cool complement to xargs. Its main
goal is to run things in parallel (hence the name) across CPU cores or
across different servers via SSH.
Dissecting the command-line above:
#generate filenames# | parallel -uXj1 vim
Like xargs, parallel can take its argument list on stdin.
-u = 'ungroup' output # prevents output from being 'grouped'. Since
parallel is designed to run things in parallel, its default output mode
is to not intermingle the various subprocesses' output.
-X = 'xargs with context replace' # --xargs mode (-m) allows the
argument {} to be replaced with the input list. By default, if not
present, {} is appended to the argument list. (So `parallel -uXj1 vim`
is equivalent to `parallel -uXj1 {}`). 'xargs with context replace' is
like --xargs mode, except when {} appears mid-word the whole word is
repeated for each argument. This allows, e.g.:
seq 1 5 | parallel -uXj1 vim test-file-{}
-j1 = --jobs=1 # only run one job in parallel
--
Best,
Ben
--
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