gpt4 book ai didi

linux - 在文件中每第 n 个字符出现时插入内容

转载 作者:太空狗 更新时间:2023-10-29 12:20:26 26 4
gpt4 key购买 nike

我有一个包含查询的文件,每个查询以“;”结尾,我想添加一个“COMMIT;BEGIN;”每 100 个查询。查询可以超过 1 行。

例如:


INSERT INTO table
VALUES(...);
DELETE FROM table WHERE ...;
UPDATE table
SET ...;

所以我想每第 100 个“;”替换一次用“提交;开始;” (我知道我必须添加一个 BEGIN; 在文件的开头并在结尾处做一些事情,但这很容易)

我需要在 shell 脚本中执行此操作,但我不是 Linux 专家,使用 sed 还是 awk 更好(而且文件大小可能很大,如 4GB)?我知道这些命令的基础知识,但我不知道我是否可以在这里做我想做的...

谢谢!

最佳答案

如果您可以保证 ; 位于行尾,或者如果您真的不关心包含多个 ; 的行,那么简单解决方案(未经测试)是:

awk '/;/{ count+=1 } {print} count==100 { print "COMMIT; BEGIN"; count=0 }'

关于linux - 在文件中每第 n 个字符出现时插入内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10901745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com