我是一个vim用户,可以使用一些基本的awk或bash命令.现在我有一个大小超过20G的文本(vcf)文件.我想要的是将第69行移到第66行以下:
$less huge.vcf
...
66 ##contig=<ID=9,length=124595110>
67 ##contig=<ID=X,length=171031299>
68 ##contig=<ID=Y,length=91744698>
69 ##contig=<ID=MT,length=16299>
...
Run Code Online (Sandbox Code Playgroud)
我想要的是:
...
66 ##contig=<ID=9,length=124595110>
67 ##contig=<ID=MT,length=16299>
68 ##contig=<ID=X,length=171031299>
69 ##contig=<ID=Y,length=91744698>
...
Run Code Online (Sandbox Code Playgroud)
我尝试使用vim(已安装LargeFile插件)打开并编辑它,但仍然无法正常工作.
Cha*_*ffy 14
简单的方法是从文件中复制要编辑的部分,就地修改它,然后将其复制回来.
# extract the first hundred lines
head -n 100 huge.txt >start.txt
# modify that extracted subset
vim start.txt
# copy that section back into the beginning of larger file
dd if=start.txt of=huge.txt conv=notrunc
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于您的编辑不会更改要修改的部分的大小的情况.也就是说 - 确保start.txt在修改之后具有与之前相同的大小(以字节为单位).
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |