我想使用vi
编辑器复制几行屏幕。从行号xxxx
到行号zzzzz
的任何内容。
然后,我想将这些行写入另一个文件。
答案 0 :(得分:2)
在命令模式下(按< ESC>)键入:
:X,Zy
X
是第一行,Z
是最后一行。
复制第3至500行:
:3,500y
要插入您想要复制副本行的之后行,然后点击p
(更低' P')。
如果您想在特定行中插入行,请点击P
(上方' P')。
答案 1 :(得分:1)
如果您想在vi
中执行此操作,则可以使用:
:XXX,ZZZy<enter>
但是,您似乎希望将这些行存储在另一个文件中。然后,awk
便利了:
awk 'NR==XXX,NR==ZZZ' a > new_file
如果数字恰好是变量,请将它们用作:
awk -v first="$first" -v last="$last" 'NR==first,NR==last' a > new_file
让我们在文件a
中打印50个数字的序列,每个数字在不同的行中:
$ seq 50&gt;一个
然后,我们产生输出:
$ awk 'NR==5,NR==7' a > new_file
$ cat new_file
5
6
7