繁体   English   中英

在vi编辑器中将所有内容从行号xxxxx复制到行号zzzzzz

[英]copying everything from line number xxxxx to line number zzzzzz in vi editor

我想使用vi编辑器复制几个屏幕行。 从行号xxxx到行号zzzzz任何内容。

然后,我想将这些行写入另一个文件。

在命令方式下(按<ESC>),输入:

:X,Zy

其中X是第一行, Z是最后一行。

将第3行复制到500行:

:3,500y

要插入到要instert副本线,打线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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM