在 vi 编辑器中复制从行号 xxxxx 到行号 zzzzzz 的所有内容
copying everything from line number xxxxx to line number zzzzzz in vi editor
我想使用 vi
编辑器复制几行。从行号 xxxx
到行号 zzzzz
.
的任何内容
然后,我想将这些行写入另一个文件。
在命令模式下(按 )键入:
:X,Zy
其中X
是第一行,Z
是最后一行。
例子
复制第 3 行到第 500 行:
:3,500y
要插入到要插入副本行的行,然后点击p
(下方'P')。
如果要在特定行之前插入行,请点击 P
(上方 'P')。
如果您想在 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 > a
然后,我们产生输出:
$ awk 'NR==5,NR==7' a > new_file
$ cat new_file
5
6
7
我想使用 vi
编辑器复制几行。从行号 xxxx
到行号 zzzzz
.
然后,我想将这些行写入另一个文件。
在命令模式下(按
:X,Zy
其中X
是第一行,Z
是最后一行。
例子
复制第 3 行到第 500 行:
:3,500y
要插入到要插入副本行的行,然后点击p
(下方'P')。
如果要在特定行之前插入行,请点击 P
(上方 'P')。
如果您想在 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 > a
然后,我们产生输出:
$ awk 'NR==5,NR==7' a > new_file
$ cat new_file
5
6
7