pgsql删除前几行_秒级注释100G大文件的前两行数据程序,网友:太实用了

在数据库运维中,处理100G大文件时,用vi或vim编辑注释前几行记录会导致系统读取整个文件,内存不足时体验差且易损坏文件,sed删除也不理想。网上大神用C++写的注释程序不够灵活,作者对其改进,支持指定注释区间行数和指定行数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做数据库运维的时候,不知道大家有没有遇到过,一个特别大的文件(100G),就想注释掉前2行记录,不想让数据库执行。

bafda7ab001223d8a11f31e9c90ec629.png

这个时候,你会怎么做,相信很多人会用vi或者vim,去编辑这个100G文件,只要你用了vi或者vim,你的噩梦就会开始,操作系统会将文件整个读取,如果你内存不够大,这个过程绝对让你终生难忘的经历,估计等个10几分钟,就能看到vi的编辑界面了,用dd删除掉不想要的2条记录,然后非常潇洒的保存,结果又会等个10多分钟,运气好的话,可能会保存成功,运气不好,可能你的文件就直接损坏了。

what,vi太落伍了,sed知道不,用sed直接删除就可以,于是
删除第N行:
sed -i 'Nd' filename

删除第M到N行:
sed -i 'M,Nd' filename

如果过你用了,就是五十步笑百步了,这里就不多说sed删除的过程了。

88ba8646097490796bf54baa9e742c4c.png

网上有一个大神用C++写了一个快速注释前两行数据的程序,可是程序只能注释前几行,不够灵活,我稍微改了一下程序,可以支持指定注释某个区间行数,和指定行数据,其程序代码如下所示

编译test.cpp文件g++ test.cpp -o test使用“-”注释文件2--4行内容./test - 2 4./test # 2 3./test / 2 4读取源文件名称为:test.txt由于代码fio.open("test.txt",ios::in|ios::out);,这里写死了文件名称,所以你要编辑的文件名称只能是test.txt,如果想换成别的文件名称,需要修改源代码。#include#include#include #include using namespace std;bool parse_char(char );int parse_int(char*);int main(int argc,char *argv[]){        if((argc!=4)&parse_char(argv[1][0]))        {                cout<=line_num-1)                        {                         fio<>num;        return num;}
0179c276d1bf8748bbe6bbdcf1555a4b.png

喜欢的,可以添加关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值