gpt4 book ai didi

linux - 拆分分隔符的第二次出现

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:50 29 4
gpt4 key购买 nike

我正在尝试使用 awk 每隔两次出现分隔符就拆分一个文件,但我总是在开头以一个空文件结束,我不明白为什么。

我需要分解成多个文件的数据格式类似这样:

----------
aaa
bbb
----------
ccc
ddd
----------
eee
fff
----------
ggg

第一个生成的文件应包含:

----------
aaa
bbb
----------
ccc
ddd

分隔符始终相同(10 次“减号”)。
我现在正在尝试这样做:

awk -v RS='[-]{10}' '{i++} {file = sprintf("temp-%s", int(i/2)); print >> file;}'

然而,我得到的第一个文件 (temp-0) 总是包含一个空行,没有其他内容。
此外,源文件不是以空行开头,也没有任何内容(之前已将其删除)。

有人可以帮忙吗?

最佳答案

我不会玩 RS对于这个问题。你可以算出---------决定是否必须增加文件索引。试试这一行:

awk '/^--*$/{c++;f+=c%2?1:0}{print > "temp-"f}' file

请注意,上面的行让您了解了如何处理行和文件索引。如果你的文件很大,你需要 close()文件并使用 >>再次重定向,否则你会得到像too many opened files这样的错误.

关于linux - 拆分分隔符的第二次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52155147/

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