While in vim I can write a range of lines from the file I'm viewing to another file. For example,

:1,10 w outfile.txt

will write lines 1 through 10 to outfile.txt.

Can I do the same while I'm viewing a file using less?

2 Answers 2

10Gmm1G|mcat > outfile.txt

(typed within less) seems to work as long as the input doesn't fit in one screen (in which case all the input ends up in outfile.txt for some reason).

  • 10G brings you to line 10
  • mm sets the m mark there
  • 1G (same as g in this case) brings you to line 1
  • |m pipe from the current line to mark m
  • cat > outfile.txt: that's piped to that command.
  • I had to paste the command at the prompt because typing 10G brought me to the 10th line before I could type the rest, but it did indeed work.
    – eebbesen
    Commented Feb 17, 2014 at 16:57
  • 2
    @eebbesen, well that was the point. See my edit Commented Feb 17, 2014 at 17:20
  • Thank you for clarifying @StephaneChazelas (as well as for your initial answer) -- it is now clear.
    – eebbesen
    Commented Feb 17, 2014 at 17:43
  • 1
    genius to the rescue again :)
    – Ramesh
    Commented Sep 5, 2014 at 15:02

You could use view which is the same as vi -r

  • 5
    That will work, but for large files I prefer to use less -- it is my understanding that vi causes the whole file to load at once.
    – eebbesen
    Commented Feb 17, 2014 at 16:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .