如何使用 vi 打开非常大的文件的一个子集
How do I open just a subset of very large file using vi
如何使用 vi 打开非常大的文件的一个子集
- 使用 vi 打开最后 10000 行
- 使用 vi 打开 10000、20000 行
我不会在这里使用 Vim,因为性能问题。寻呼机更适合这份工作。
打开最后 10000 行
$ tail -n 10000 filename | less
打开10000、20000行
$ sed -n 10000,20000p filename | less
无论如何,如果你真的想要Vim,你可以用vim -
替换less
。
作为补充,我写了一个小脚本到edit/view一个文件切片(vimslice)。
#!/usr/bin/perl -s
my $file=shift or die("Error:
usage: [=10=] [-n] file startline [endline]
-n don't save changes in file.out\n");
my $sl = shift || 1;
my $el = shift || ($sl+1000);
system("sed -n -e '$sl,$el p' $file > $file.$$");
system("vi $file.$$");
if(not $n){
system(qq{awk '(NR==$el) {system("cat $file.$$")}
NR==$sl,NR==($el) {next}
{print}' $file> $file.out});}
chmod 并安装后执行
vimslice bigfile 10000 20000
... edit the slice, replace and save in "bigfile.out"
vimslice -n bigfile 10000 20000
... just view the slice
vimslice bigfile 10000
... the same as vimslice bigfile 10000 10000+1000
如何使用 vi 打开非常大的文件的一个子集
- 使用 vi 打开最后 10000 行
- 使用 vi 打开 10000、20000 行
我不会在这里使用 Vim,因为性能问题。寻呼机更适合这份工作。
打开最后 10000 行
$ tail -n 10000 filename | less
打开10000、20000行
$ sed -n 10000,20000p filename | less
无论如何,如果你真的想要Vim,你可以用vim -
替换less
。
作为补充,我写了一个小脚本到edit/view一个文件切片(vimslice)。
#!/usr/bin/perl -s
my $file=shift or die("Error:
usage: [=10=] [-n] file startline [endline]
-n don't save changes in file.out\n");
my $sl = shift || 1;
my $el = shift || ($sl+1000);
system("sed -n -e '$sl,$el p' $file > $file.$$");
system("vi $file.$$");
if(not $n){
system(qq{awk '(NR==$el) {system("cat $file.$$")}
NR==$sl,NR==($el) {next}
{print}' $file> $file.out});}
chmod 并安装后执行
vimslice bigfile 10000 20000
... edit the slice, replace and save in "bigfile.out"
vimslice -n bigfile 10000 20000
... just view the slice
vimslice bigfile 10000
... the same as vimslice bigfile 10000 10000+1000